2014-11-30 21:16:01 -08:00
|
|
|
prelude
|
2014-09-17 14:39:05 -07:00
|
|
|
definition Prop := Type.{0}
|
2014-08-07 07:52:20 -07:00
|
|
|
|
|
|
|
inductive nat :=
|
2015-02-25 17:00:10 -08:00
|
|
|
| zero : nat
|
|
|
|
| succ : nat → nat
|
2014-08-07 07:52:20 -07:00
|
|
|
|
|
|
|
inductive list (A : Type) :=
|
2015-02-25 17:00:10 -08:00
|
|
|
| nil {} : list A
|
|
|
|
| cons : A → list A → list A
|
2014-08-07 07:52:20 -07:00
|
|
|
|
|
|
|
inductive list2 (A : Type) : Type :=
|
2015-02-25 17:00:10 -08:00
|
|
|
| nil2 {} : list2 A
|
|
|
|
| cons2 : A → list2 A → list2 A
|
2014-08-07 07:52:20 -07:00
|
|
|
|
|
|
|
inductive and (A B : Prop) : Prop :=
|
2014-08-22 15:46:10 -07:00
|
|
|
and_intro : A → B → and A B
|
2014-08-07 07:52:20 -07:00
|
|
|
|
2014-09-02 15:03:33 -07:00
|
|
|
inductive cls {T1 : Type} (R1 : T1 → T1 → Prop) {T2 : Type} (R2 : T2 → T2 → Prop) (f : T1 → T2) :=
|
|
|
|
mk : (∀x y : T1, R1 x y → R2 (f x) (f y)) → cls R1 R2 f
|