diff --git a/theories/telescopes.v b/theories/telescopes.v index 29c5e3759ee0936ebbfc7ba92b02e2ac449f0249..40011932891791c64e08a7c3f6f364d1d1b36af8 100644 --- a/theories/telescopes.v +++ b/theories/telescopes.v @@ -104,13 +104,22 @@ Proof. rewrite IH. done. Qed. -(** We can define the identity function of the [-t>] function space. *) +(** We can define the identity function and composition of the [-t>] function +space. *) Definition tele_id {TT : tele} : TT -t> TT := tele_bind id. Lemma tele_id_eq {TT : tele} (x : TT) : tele_id x = x. Proof. unfold tele_id. rewrite tele_app_bind. done. Qed. +Definition tele_compose {TT1 TT2 TT3 : tele} : + (TT2 -t> TT3) → (TT1 -t> TT2) → (TT1 -t> TT3) := + λ t1 t2, tele_bind (compose (tele_app t1) (tele_app t2)). + +Lemma tele_compose_eq {TT1 TT2 TT3 : tele} (f : TT2 -t> TT3) (g : TT1 -t> TT2) x : + tele_compose f g $ x = (f ∘ g) x. +Proof. unfold tele_compose. rewrite tele_app_bind. done. Qed. + (** Notation *) Notation "'[tele' x .. z ]" := (TeleS (fun x => .. (TeleS (fun z => TeleO)) ..))