fix(init.datatypes): make empty live in Type.{0}

This commit is contained in:
Floris van Doorn 2015-05-05 18:05:07 -04:00 committed by Leonardo de Moura
parent 90f1a691fd
commit e5241f84ec
6 changed files with 7 additions and 15 deletions

View file

@ -40,7 +40,7 @@ namespace sphere_index
definition add (n m : sphere_index) : sphere_index :=
sphere_index.rec_on m n (λ k l, l .+1)
definition leq (n m : sphere_index) : Type :=
definition leq (n m : sphere_index) : Type :=
sphere_index.rec_on n (λm, unit) (λ n p m, sphere_index.rec_on m (λ p, empty) (λ m q p, p m) p) m
infix `+1+`:65 := sphere_index.add

View file

@ -19,7 +19,7 @@ notation `Type₃` := Type.{3}
inductive unit.{l} : Type.{l} :=
star : unit
inductive empty.{l} : Type.{l}
inductive empty : Type₀
inductive eq.{l} {A : Type.{l}} (a : A) : A → Type.{l} :=
refl : eq a a

View file

@ -11,7 +11,7 @@ import init.reserved_notation
/- not -/
definition not.{l} (a : Type.{l}) := a → empty.{l}
definition not (a : Type) := a → empty
prefix `¬` := not
definition absurd {a b : Type} (H₁ : a) (H₂ : ¬a) : b :=

View file

@ -20,7 +20,7 @@ namespace is_trunc
/- Truncation levels -/
inductive trunc_index : Type :=
inductive trunc_index : Type :=
| minus_two : trunc_index
| succ : trunc_index → trunc_index
@ -38,7 +38,7 @@ namespace is_trunc
definition add (n m : trunc_index) : trunc_index :=
trunc_index.rec_on m n (λ k l, l .+1)
definition leq (n m : trunc_index) : Type :=
definition leq (n m : trunc_index) : Type :=
trunc_index.rec_on n (λm, unit) (λ n p m, trunc_index.rec_on m (λ p, empty) (λ m q p, p m) p) m
end trunc_index

View file

@ -191,7 +191,7 @@ iff.intro (assume H, pr1 H) (assume H, pair H star)
definition unit_prod (a : Type) : unit × a ↔ a :=
iff.intro (assume H, pr2 H) (assume H, pair star H)
definition prod_empty.{l} (a : Type.{l}) : a × empty.{l} ↔ empty.{l} :=
definition prod_empty (a : Type) : a × empty ↔ empty :=
iff.intro (assume H, pr2 H) (assume H, !empty.elim H)
definition empty_prod (a : Type) : empty × a ↔ empty :=

View file

@ -46,15 +46,7 @@ namespace is_trunc
{ apply equiv.to_is_equiv, apply is_contr.sigma_char},
apply (@is_hprop.mk), intros,
fapply sigma_eq, {apply x.2},
apply (@is_hprop.elim),
apply is_trunc_pi, intro a,
apply is_hprop.mk, intro w z,
have H : is_hset A,
begin
apply is_trunc_succ, apply is_trunc_succ,
apply is_contr.mk, exact y.2
end,
fapply (@is_hset.elim A _ _ _ w z)},
apply (@is_hprop.elim)},
{ intro n' IH A,
apply is_trunc_is_equiv_closed,
apply equiv.to_is_equiv,