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