16 lines
365 B
Plaintext
16 lines
365 B
Plaintext
module Equality
|
|
|
|
-- we don't have implicits yet, so this won't typecheck
|
|
|
|
Eq : {A : U} -> A -> A -> U
|
|
Eq = \ {A} => \ x => \ y => (P : A -> U) -> P x -> P y
|
|
|
|
refl : {A : U} {x : A} -> Eq x x
|
|
refl = \ {A} => \ {x} => x
|
|
|
|
-- can I write J without pattern matching?
|
|
J : {A : U} {x y : A} (eq : Eq x y) ->
|
|
(mot : (x : A) (P : Eq x y) -> U)
|
|
(b : mot y refl) ->
|
|
mot x eq
|