(* basic inversion lemmas ***************************************************)
-lemma gget_inv_gt: â\88\80G1,G2,e. â\87©[e] G1 ≡ G2 → |G1| ≤ e → G2 = ⋆.
+lemma gget_inv_gt: â\88\80G1,G2,e. â¬\87[e] G1 ≡ G2 → |G1| ≤ e → G2 = ⋆.
#G1 #G2 #e * -G1 -G2 //
[ #G #H >H -H >commutative_plus #H (**) (* lemma needed here *)
lapply (le_plus_to_le_r … 0 H) -H #H
]
qed-.
-lemma gget_inv_eq: â\88\80G1,G2,e. â\87©[e] G1 ≡ G2 → |G1| = e + 1 → G1 = G2.
+lemma gget_inv_eq: â\88\80G1,G2,e. â¬\87[e] G1 ≡ G2 → |G1| = e + 1 → G1 = G2.
#G1 #G2 #e * -G1 -G2 //
[ #G #H1 #H2 >H2 in H1; -H2 >commutative_plus #H (**) (* lemma needed here *)
lapply (le_plus_to_le_r … 0 H) -H #H
]
qed-.
-fact gget_inv_lt_aux: â\88\80I,G,G1,G2,V,e. â\87©[e] G ≡ G2 → G = G1. ⓑ{I} V →
- e < |G1| â\86\92 â\87©[e] G1 ≡ G2.
+fact gget_inv_lt_aux: â\88\80I,G,G1,G2,V,e. â¬\87[e] G ≡ G2 → G = G1. ⓑ{I} V →
+ e < |G1| â\86\92 â¬\87[e] G1 ≡ G2.
#I #G #G1 #G2 #V #e * -G -G2
[ #G #H1 #H destruct #H2
lapply (le_to_lt_to_lt … H1 H2) -H1 -H2 normalize in ⊢ (? % ? → ?); >commutative_plus #H
qed-.
lemma gget_inv_lt: ∀I,G1,G2,V,e.
- â\87©[e] G1. â\93\91{I} V â\89¡ G2 â\86\92 e < |G1| â\86\92 â\87©[e] G1 ≡ G2.
+ â¬\87[e] G1. â\93\91{I} V â\89¡ G2 â\86\92 e < |G1| â\86\92 â¬\87[e] G1 ≡ G2.
/2 width=5 by gget_inv_lt_aux/ qed-.
(* Basic properties *********************************************************)
-lemma gget_total: â\88\80e,G1. â\88\83G2. â\87©[e] G1 ≡ G2.
+lemma gget_total: â\88\80e,G1. â\88\83G2. â¬\87[e] G1 ≡ G2.
#e #G1 elim G1 -G1 /3 width=2/
#I #V #G1 * #G2 #HG12
elim (lt_or_eq_or_gt e (|G1|)) #He