2

It is relatively easy to construct an object in set/class theory which has properties of any of the following: dependent sum, dependent product, W-types.

E.g. Dependent sum of a family F is just the composition $(E^{-1}\ $o$\ F)$. (it depends slightly on definitions, but this is the idea)

Fix some family B. (let's say it is a class-function, or even just function) But how to obtain an object which will represent M(x:A)B(x)? (i.e. I am trying to implement coinductive types)

It was easy to implement inductive types, W(x:A)B(x) with a recursive definition of "stages" followed by set-theoretic union. But how to implement coinductive types M(x:A)B(x) ? How to mathematically define an object which will be a set-theoretic semantic of "M(x:A)B(x)"?

(related to this question : Definition of M-type in type theory )

very related to https://math.stackexchange.com/questions/4919803/way-of-defining-families-of-proper-classes-in-class-theory

enter image description here

g_d
  • 121
  • 4

1 Answers1

0

This is my attempt to define M-types in Coq.

Inductive sigma (A:Type) (F:A->Type) : Type :=
 sigma_intro : forall (a : A), (F a) -> (sigma A F)  
.

Require Import List.

(* countable collection of something *) Inductive Cou (X:Type) : Type := fin : (list X) -> Cou X | inf : (nat -> X) -> Cou X.

Definition M (A:Type) (F:A->Type) : Type := sigma Type (fun Q => sigma Q (fun _ => Cou (sigma A F))).

(* It may not be enough: requires equal beginnings *)

Set-theoretically it will be something like $$ MF := \mathcal{P}\{f:D \to\Sigma F| (D\in\omega)\lor(D=\omega)\} $$ $$ = \mathcal{P}\{f|\exists D: (f:D \to \Sigma F) \land ( (D\in\omega)\lor(D=\omega))\} $$

(D is a variable bound by notation for class-collection)

Or should the values of the initial segments of the branches with equal initial labels coincide? Then it is necessary to require coinciding initial labels to have coinciding initial values $$ MF := \{Q\in\mathcal{P}\{f:D \to\Sigma F| (D\in\omega)\lor(D=\omega)\} | \forall f,g\in Q: \forall \mbox{i initial segment of }\omega: ((pr_1 \circ f)\restriction i)=((pr_1 \circ g) \restriction i) \longrightarrow f \restriction i = g \restriction i\} $$

g_d
  • 121
  • 4