(*** at_inv_nil *)
lemma fr2_nat_inv_nil (l1) (l2):
- @â\9dªl1, â\97\8aâ\9d« ≘ l2 → l1 = l2.
+ @â\9d¨l1, â\97\8aâ\9d© ≘ l2 → l1 = l2.
#l1 #l2 @(insert_eq_1 … (◊))
#f * -f -l1 -l2
[ //
(*** at_inv_cons *)
lemma fr2_nat_inv_cons (f) (d) (h) (l1) (l2):
- @â\9dªl1, â\9d¨d,hâ\9d©;fâ\9d« ≘ l2 →
- â\88¨â\88¨ â\88§â\88§ l1 < d & @â\9dªl1, fâ\9d« ≘ l2
- | â\88§â\88§ d â\89¤ l1 & @â\9dªl1+h, fâ\9d« ≘ l2.
+ @â\9d¨l1, â\9d¨d,hâ\9d©;fâ\9d© ≘ l2 →
+ â\88¨â\88¨ â\88§â\88§ l1 < d & @â\9d¨l1, fâ\9d© ≘ l2
+ | â\88§â\88§ d â\89¤ l1 & @â\9d¨l1+h, fâ\9d© ≘ l2.
#g #d #h #l1 #l2 @(insert_eq_1 … (❨d, h❩;g))
#f * -f -l1 -l2
[ #l #H destruct
(*** at_inv_cons *)
lemma fr2_nat_inv_cons_lt (f) (d) (h) (l1) (l2):
- @â\9dªl1, â\9d¨d,hâ\9d©;fâ\9d« â\89\98 l2 â\86\92 l1 < d â\86\92 @â\9dªl1, fâ\9d« ≘ l2.
+ @â\9d¨l1, â\9d¨d,hâ\9d©;fâ\9d© â\89\98 l2 â\86\92 l1 < d â\86\92 @â\9d¨l1, fâ\9d© ≘ l2.
#f #d #h #l1 #h2 #H
elim (fr2_nat_inv_cons … H) -H * // #Hdl1 #_ #Hl1d
elim (nlt_ge_false … Hl1d Hdl1)
(*** at_inv_cons *)
lemma fr2_nat_inv_cons_ge (f) (d) (h) (l1) (l2):
- @â\9dªl1, â\9d¨d,hâ\9d©;fâ\9d« â\89\98 l2 â\86\92 d â\89¤ l1 â\86\92 @â\9dªl1+h, fâ\9d« ≘ l2.
+ @â\9d¨l1, â\9d¨d,hâ\9d©;fâ\9d© â\89\98 l2 â\86\92 d â\89¤ l1 â\86\92 @â\9d¨l1+h, fâ\9d© ≘ l2.
#f #d #h #l1 #h2 #H
elim (fr2_nat_inv_cons … H) -H * // #Hl1d #_ #Hdl1
elim (nlt_ge_false … Hl1d Hdl1)