(* Basic inversion lemmas ***************************************************)
-lemma isid_inv_gen: â\88\80g. ð\9d\90\88â¦\83gâ¦\84 â\86\92 â\88\83â\88\83f. ð\9d\90\88â¦\83fâ¦\84 & ⫯f = g.
+lemma isid_inv_gen: â\88\80g. ð\9d\90\88â\9dªgâ\9d« â\86\92 â\88\83â\88\83f. ð\9d\90\88â\9dªfâ\9d« & ⫯f = g.
#g * -g
#f #g #Hf * /2 width=3 by ex2_intro/
qed-.
(* Advanced inversion lemmas ************************************************)
-lemma isid_inv_push: â\88\80g. ð\9d\90\88â¦\83gâ¦\84 â\86\92 â\88\80f. ⫯f = g â\86\92 ð\9d\90\88â¦\83fâ¦\84.
+lemma isid_inv_push: â\88\80g. ð\9d\90\88â\9dªgâ\9d« â\86\92 â\88\80f. ⫯f = g â\86\92 ð\9d\90\88â\9dªfâ\9d«.
#g #H elim (isid_inv_gen … H) -H
#f #Hf * -g #g #H >(injective_push … H) -H //
qed-.
-lemma isid_inv_next: â\88\80g. ð\9d\90\88â¦\83gâ¦\84 → ∀f. ↑f = g → ⊥.
+lemma isid_inv_next: â\88\80g. ð\9d\90\88â\9dªgâ\9d« → ∀f. ↑f = g → ⊥.
#g #H elim (isid_inv_gen … H) -H
#f #Hf * -g #g #H elim (discr_next_push … H)
qed-.
(* Main inversion lemmas ****************************************************)
-corec theorem isid_inv_eq_repl: â\88\80f1,f2. ð\9d\90\88â¦\83f1â¦\84 â\86\92 ð\9d\90\88â¦\83f2â¦\84 → f1 ≡ f2.
+corec theorem isid_inv_eq_repl: â\88\80f1,f2. ð\9d\90\88â\9dªf1â\9d« â\86\92 ð\9d\90\88â\9dªf2â\9d« → f1 ≡ f2.
#f1 #f2 #H1 #H2
cases (isid_inv_gen … H1) -H1
cases (isid_inv_gen … H2) -H2
(* Alternative definition ***************************************************)
-corec lemma eq_push_isid: â\88\80f. ⫯f â\89¡ f â\86\92 ð\9d\90\88â¦\83fâ¦\84.
+corec lemma eq_push_isid: â\88\80f. ⫯f â\89¡ f â\86\92 ð\9d\90\88â\9dªfâ\9d«.
#f #H cases (eq_inv_px … H) -H /4 width=3 by isid_push, eq_trans/
qed.
-corec lemma eq_push_inv_isid: â\88\80f. ð\9d\90\88â¦\83fâ¦\84 → ⫯f ≡ f.
+corec lemma eq_push_inv_isid: â\88\80f. ð\9d\90\88â\9dªfâ\9d« → ⫯f ≡ f.
#f * -f
#f #g #Hf #Hg @(eq_push … Hg) [2: @eq_push_inv_isid // | skip ]
@eq_f //
(* Properties with iterated push ********************************************)
-lemma isid_pushs: â\88\80n,f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 ð\9d\90\88â¦\83⫯*[n]fâ¦\84.
+lemma isid_pushs: â\88\80n,f. ð\9d\90\88â\9dªfâ\9d« â\86\92 ð\9d\90\88â\9dªâ«¯*[n]fâ\9d«.
#n elim n -n /3 width=3 by isid_push/
qed.
(* Inversion lemmas with iterated push **************************************)
-lemma isid_inv_pushs: â\88\80n,g. ð\9d\90\88â¦\83⫯*[n]gâ¦\84 â\86\92 ð\9d\90\88â¦\83gâ¦\84.
+lemma isid_inv_pushs: â\88\80n,g. ð\9d\90\88â\9dªâ«¯*[n]gâ\9d« â\86\92 ð\9d\90\88â\9dªgâ\9d«.
#n elim n -n /3 width=3 by isid_inv_push/
qed.
(* Properties with tail *****************************************************)
-lemma isid_tl: â\88\80f. ð\9d\90\88â¦\83fâ¦\84 â\86\92 ð\9d\90\88â¦\83⫱fâ¦\84.
+lemma isid_tl: â\88\80f. ð\9d\90\88â\9dªfâ\9d« â\86\92 ð\9d\90\88â\9dªâ«±fâ\9d«.
#f cases (pn_split f) * #g * -f #H
[ /2 width=3 by isid_inv_push/
| elim (isid_inv_next … H) -H //
(* Properties with iterated tail ********************************************)
-lemma isid_tls: â\88\80n,g. ð\9d\90\88â¦\83gâ¦\84 â\86\92 ð\9d\90\88â¦\83⫱*[n]gâ¦\84.
+lemma isid_tls: â\88\80n,g. ð\9d\90\88â\9dªgâ\9d« â\86\92 ð\9d\90\88â\9dªâ«±*[n]gâ\9d«.
#n elim n -n /3 width=1 by isid_tl/
qed.