Skip to content
Snippets Groups Projects
Commit 4a3e8ed0 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Add induction principle for `tele_arg`.

parent 045e4d23
No related branches found
No related tags found
1 merge request!374Add induction principle for `tele_arg`.
Pipeline #64640 passed
...@@ -56,6 +56,16 @@ Notation TargO := tt (only parsing). ...@@ -56,6 +56,16 @@ Notation TargO := tt (only parsing).
Notation TargS a b := (@TeleArgCons _ (λ x, tele_arg _) a b) (only parsing). Notation TargS a b := (@TeleArgCons _ (λ x, tele_arg _) a b) (only parsing).
Coercion tele_arg : tele >-> Sortclass. Coercion tele_arg : tele >-> Sortclass.
Lemma tele_arg_ind (P : TT, tele_arg TT Prop) :
P TeleO TargO
( T (b : T tele) x xs, P (b x) xs P (TeleS b) (TargS x xs))
TT (xs : tele_arg TT), P TT xs.
Proof.
intros H0 HS TT. induction TT as [|T b IH]; simpl.
- by intros [].
- intros [x xs]. by apply HS.
Qed.
Fixpoint tele_app {TT : tele} {U} : (TT -t> U) -> TT U := Fixpoint tele_app {TT : tele} {U} : (TT -t> U) -> TT U :=
match TT as TT return (TT -t> U) -> TT U with match TT as TT return (TT -t> U) -> TT U with
| TeleO => λ F _, F | TeleO => λ F _, F
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment