11Require Import Utf8.
22Require Import RelationClasses Morphisms.
3- Require Vector.
43
54Declare Scope bind_scope.
65Delimit Scope bind_scope with bind.
@@ -49,10 +48,6 @@ Section Arrows.
4948 Class FunctorCore (F : Obj → Type ) :=
5049 fmap : ∀ {A B}, (Arr A B) → F A → F B.
5150
52- (*Definition fmap {F : Obj → Type}
53- {FunCore : FunctorCore F} {A B : Obj}
54- (f : Arr A B) : F A → F B := fmap_core _ _ f. *)
55-
5651 Class Functor (F : Obj → Type ) {FunCore : FunctorCore F} : Prop :=
5752 { map_id {A} (f : Arr A A) (t : F A) (EQ : f ≡ ı) :
5853 fmap f t = t;
@@ -81,8 +76,6 @@ Section Substitutions.
8176 Definition sub {Arr Sub} {ASC : SubstCore Arr Sub} := Sub.
8277 Definition subarr {Arr Sub} {ASC : SubstCore Arr Sub} := Arr.
8378
84- (*Notation " 'η' " := (subst_pure _) : bind_scope.
85- Notation " σ • ρ " := (subst_comp σ%bind ρ%bind) (at level 40, left associativity) : bind_scope. *)
8679 Notation " f '̂' " := (subst_of_arr f%bind) (at level 30) : bind_scope.
8780
8881 Class Subst
@@ -103,10 +96,6 @@ Section Substitutions.
10396 Class BindCore (F : Obj → Type ) :=
10497 bind : ∀ {A B}, (Sub A B) → F A → F B.
10598
106- (*Definition bind {F : Obj → Type}
107- {BindF : BindCore F} {A B : Obj}
108- (f : Sub A B) : F A → F B := bind_core _ _ f. *)
109-
11099 Class BindMapPure (F : Obj → Type ) {MapF : FunctorCore F} {BindF : BindCore F} : Prop :=
111100 { bind_map {A B} (f : Arr A B) g t
112101 (EQ : f ̂ ≡ g) :
@@ -200,21 +189,6 @@ Section Shifting.
200189 {A : Obj}
201190 (a : F A) : F (Inc A) := fmap mk_shift a.
202191
203- (*Fixpoint mk_shiftn
204- {Arr : Obj → Obj → Type}
205- {F : Obj → Type} {map} {MapF : FunctorCore (F:=F) (Arr:=Arr) map}
206- {Inc : Obj → Obj} {AC : ArrowCore Arr} {ALC : ALiftableCore Arr Inc} {Sh : ShiftableCore Arr Inc}
207- {A : Obj} n : Arr A (Nat.iter n Inc A) :=
208- match n with
209- | O => ı
210- | S n' => (liftA (G := Inc) (mk_shiftn (Inc := Inc) n')) ∘ mk_shift
211- end.
212-
213- Definition shiftn {Arr : Obj → Obj → Type}
214- {F : Obj → Type} {map} {MapF : FunctorCore (F:=F) (Arr:=Arr) map}
215- {Inc : Obj → Obj} {AC : ArrowCore Arr} {ALC : ALiftableCore Arr Inc} {Sh : ShiftableCore Arr Inc}
216- n {A : Obj} (a : F A) := fmap (mk_shiftn n) a. *)
217-
218192 Context (Arr : Obj → Obj → Type) {EqArr : EqIndCore Arr} {AC : ArrowCore Arr}.
219193 Context (Sub : Obj → Obj → Type) {EqSub : EqIndCore Sub} {SC : ArrowCore Sub}.
220194 Context {ASC : SubstCore Arr Sub}.
@@ -247,27 +221,6 @@ Section Substituting.
247221 {F : Obj → Type } {Inc : Obj → Obj} {Sb : SubstitutableCore Sub F Inc}
248222 {A : Obj}
249223 (a : G (Inc A)) (v : F A) : G A := bind (mk_subst v) a.
250-
251- (*
252- Fixpoint mk_substV
253- {Sub : Obj → Obj → Type} {Arr : Obj → Obj → Type}
254- {G : Obj → Type} {bnd} {BindG : BindCore (F:=G) (Sub:=Sub) bnd}
255- {F : Obj → Type} {Inc : Obj → Obj} {PSC : PreSubstCore Sub} {AC : ArrowCore Arr}
256- {SC : SubstCore Arr Sub} {SLC : SLiftableCore Sub Inc} {Sb : SubstitutableCore Sub F Inc}
257- {A : Obj} {n} (xs : Vector.t (F A) n) : Sub (Nat.iter n Inc A) A :=
258- match xs with
259- | Vector.nil _ => η
260- | Vector.cons _ x _ xs => (mk_subst (Inc := Inc) x) • (mk_substV (Inc := Inc) xs) ⇑
261- end.
262-
263- Definition substV
264- {Sub : Obj → Obj → Type} {Arr : Obj → Obj → Type} {AC : ArrowCore Arr}
265- {G : Obj → Type} {bnd} {BindG : BindCore (F:=G) (Sub:=Sub) bnd}
266- {F : Obj → Type} {Inc : Obj → Obj} {PSC : PreSubstCore Sub} {SC : SubstCore Arr Sub}
267- {SLC : SLiftableCore Sub Inc} {Sb : SubstitutableCore Sub F Inc}
268- {A : Obj} {n} (xs : Vector.t (F A) n) (a : G (Nat.iter n Inc A)) : G A :=
269- bind (mk_substV xs) a.
270- *)
271224
272225 Context (Arr : Obj → Obj → Type) {EqArr : EqIndCore Arr} {AC : ArrowCore Arr}.
273226 Context (Sub : Obj → Obj → Type) {EqSub : EqIndCore Sub} {SC : ArrowCore Sub}.
0 commit comments