2014-12-01 05:16:01 +00:00
|
|
|
import logic.eq
|
2014-10-29 19:50:52 +00:00
|
|
|
|
2014-12-01 05:16:01 +00:00
|
|
|
inductive sigma2 {A : Type} (B : A → Type) :=
|
|
|
|
mk : Π (a : A), B a → sigma2 B
|
2014-10-29 19:50:52 +00:00
|
|
|
|
2014-12-01 05:16:01 +00:00
|
|
|
#projections sigma2 :: proj1 proj2
|
2014-10-29 19:50:52 +00:00
|
|
|
|
2014-12-01 05:16:01 +00:00
|
|
|
check sigma2.proj1
|
|
|
|
check sigma2.proj2
|
2014-10-29 19:50:52 +00:00
|
|
|
|
|
|
|
variables {A : Type} {B : A → Type}
|
|
|
|
variables (a : A) (b : B a)
|
|
|
|
|
2014-12-01 05:16:01 +00:00
|
|
|
theorem tst1 : sigma2.proj1 (sigma2.mk a b) = a :=
|
2014-10-29 19:50:52 +00:00
|
|
|
rfl
|
|
|
|
|
2014-12-01 05:16:01 +00:00
|
|
|
theorem tst2 : sigma2.proj2 (sigma2.mk a b) = b :=
|
2014-10-29 19:50:52 +00:00
|
|
|
rfl
|