diff --git a/paper/proof_irr.lp b/paper/proof_irr.lp index 45548f6fd5c3c8c6060e20ada83c709b04c7a39e..c4ddbf6b9279f9abe35ee25b37d5058638c5ff19 100644 --- a/paper/proof_irr.lp +++ b/paper/proof_irr.lp @@ -32,6 +32,11 @@ proof qed // Proof irrelevance without K +// We need the following axiom for pairs +symbol app_pair {a b: Set} (x y: El a) (p: El a → Bool) + (hx: Prf (p x)) (hy: Prf (p y)) (_: Prf (x = y)) + : Prf (@pair _ p x hx = @pair _ p y hy) + symbol plus: El â„• → El â„• → El â„• set infix left 10 "+" ≔ plus @@ -52,5 +57,30 @@ symbol fun_ext (a b: Set) (f g: El (a ~> b)) (_: Prf (∀ (λx, f x = g x))): Pr symbol plus_commutativity (n m: El â„•): Prf (n + m = m + n) theorem even_add_commutativity (n m: El even): Prf (add n m = add m n) +proof + assume n m + refine app_pair (fst n + fst m) (fst m + fst n) even_p _ _ _ + refine â„• + // fst n + fst m is even + refine plus_closed_even n m + // fst m + fst n is even + refine plus_closed_even m n + // fst n + m = fst m + n + refine plus_commutativity (fst n) (fst m) +qed + +// Toy example +set declared "nâ‚€" +set declared "nâ‚" +symbol nâ‚€: El â„• +symbol nâ‚: El â„• + +symbol nz_eq_no: Prf (nâ‚€ = nâ‚) +symbol pred: El â„• → Bool +symbol pq0: Prf (pred nâ‚€) +symbol pq1: Prf (pred nâ‚) + +definition ps ≔ psub pred +theorem thethm: Prf (@pair â„• pred nâ‚€ pq0 = @pair â„• pred nâ‚ pq1) proof admit