44 lines
678 B
Text
44 lines
678 B
Text
structure myprod (A B : Type) :=
|
||
(fst : A) (snd : B)
|
||
|
||
variable p : myprod nat nat
|
||
variable f : nat → nat
|
||
|
||
check p↣fst
|
||
check p↣1
|
||
check p↣2
|
||
check p↣snd
|
||
|
||
check p~>fst
|
||
check p~>1
|
||
check p~>2
|
||
check p~>snd
|
||
|
||
check f p↣1
|
||
check p↣1 + p↣2
|
||
|
||
example (A B : Type) : A × B → B × A :=
|
||
λ h, ⟨h↣2, h↣1⟩
|
||
|
||
example (A B : Type) : A × B → B × A :=
|
||
λ h, ⟨h↣snd, h↣fst⟩
|
||
|
||
structure position (A B : Type) :=
|
||
(x : A) (y : B)
|
||
|
||
structure car :=
|
||
(pos : position nat nat) (cheap : bool)
|
||
|
||
check λ c : car, c↣pos↣x
|
||
|
||
check λ c : car, c↣fst
|
||
|
||
check λ c : car, c↣0
|
||
|
||
check λ c : car, c↣3
|
||
|
||
check λ n : nat, n↣1
|
||
|
||
check p.1
|
||
check p.2
|
||
check λ c : car, c.1.2
|