2014-12-24 01:35:14 +00:00
|
|
|
inductive list (T : Type) : Type := nil {} : list T, cons : T → list T → list T
|
2014-11-12 17:11:19 +00:00
|
|
|
|
|
|
|
namespace explicit
|
|
|
|
|
|
|
|
inductive ftree.{l₁ l₂} (A : Type.{l₁}) (B : Type.{l₂}) : Type.{max 1 l₁ l₂} :=
|
|
|
|
leafa : A → ftree A B,
|
|
|
|
leafb : B → ftree A B,
|
|
|
|
node : (A → ftree A B) → (B → ftree A B) → ftree A B
|
|
|
|
|
|
|
|
end explicit
|
|
|
|
|
|
|
|
namespace implicit
|
|
|
|
|
|
|
|
inductive ftree (A : Type) (B : Type) : Type :=
|
|
|
|
leafa : ftree A B,
|
|
|
|
node : (A → B → ftree A B) → (B → ftree A B) → ftree A B
|
|
|
|
|
|
|
|
set_option pp.universes true
|
|
|
|
check ftree
|
|
|
|
end implicit
|
|
|
|
|
|
|
|
|
|
|
|
namespace implicit2
|
|
|
|
|
|
|
|
inductive ftree (A : Type) (B : Type) : Type :=
|
|
|
|
leafa : A → ftree A B,
|
|
|
|
leafb : B → ftree A B,
|
|
|
|
node : (list A → ftree A B) → (B → ftree A B) → ftree A B
|
|
|
|
|
|
|
|
check ftree
|
|
|
|
end implicit2
|