aa r X i v : . [ m a t h . L O ] F e b FORMALIZING GROUPS IN TYPE THEORY
FARIDA KACHAPOVA
Abstract.
In this paper we formalize some foundation concepts and theorems of group theory in a variant oftype theory called the Calculus of Constructions with Definitions. In this theory we introduce definition of agroup, which is both general and simple enough to use in formal proofs. Based on this definition, we formalizethe concepts of subgroup, coset, conjugate, normal subgroup, and quotient group, and formally derive somerelated theorems. We aim to keep these formalizations transparent and concise, and as close as possible to thestandard mathematical theory. The results can be implemented in proof assistants that are based on calculus ofconstructions.
1. Introduction
Formalization of mathematics in type theory has a long and well known history, from B. Russell [10] and A.Church [1] to P. Martin-L¨of [7] and T. Coquand [2]. Type theory is used as foundation for proofs assistants,which are tools for semi-automatic development and checking of mathematical proofs. Current proof assistantsare not very user-friendly, it takes a lot of time to master any of them and the results are not easily transferredfrom one of them to another. No doubt, they will improve in future. Meanwhile it seems advantageous to doformalizations in one of the underlying formal theories: proofs there are more transparent, easier to understandand possibly transfer to several proof assistants. For our formalizations we choose so called Calculus of Con-structions with Definitions λD developed in [8]. It has a clear and expressive language and useful features thatinclude decidability of type checking and proof checking, and strongly normalizing property (when no additionalaxioms are present). As any calculus of constructions, λD benefits from PAT interpretation (proofs-as-terms andpropositions-as-types).The lack of inductive types in λD is compensated by its higher order logic and axiomaticapproach to mathematical definitions.In Section 2 we give a brief overview of the theory λD , including its derived logic rules, equality, and iotadescriptor used for introducing new objects with given properties. This section also gives formalization of a fewbasic concepts relating to sets and binary relations. Based on material in [8], this section introduces some usefulderived rules and abbreviations in order to streamline formal proofs.R. Nederpelt and H. Geuvers started formalization of mathematics in λD by formalizaing natural numbersand integer arithmetic and providing a formal proof of B´ezout’s lemma [8]. We continued this line of research inpaper [6] on binary relations. In the current paper we start formalizing group theory in λD . The first importantstep is to choose definition of a group that is general and works well in formal proofs. We do that in Section3, where we consider different approaches to formally defining a group in λD . First we define a group as atype. It is easy to do but not general enough, e.g. when we need to consider subgroups. So we introduce aformal definition of a group as a set, that is subset of a type. Since type theory is designed to deal mostly withfunctions/ operations, sets are not naturally formalized in it. As any set in λD , a group is regarded a subsetof some type S and is defined as a predicate on S . Then multiplication of elements x and y of group G has totake as extra arguments the proofs that x and y belong to G . That makes formal proofs long and unclear. Thesituation is similar with the group operation of taking inverse. Mathematics Subject Classification.
Primary 03B30; Secondary 03B38.
Key words and phrases.
Type theory, calculus of constructions, flag-style derivation, group, subgroup, coset, normal subgroup,quotient group.
In order to avoid these complications we modify the definition of a group G , so that it is a subset of a type S but the group operations of multiplication and taking inverse are defined on the entire S , with specific groupaxioms required only for elements of G . Using classical logic, we formally prove in λD that operations on a subsetof type S can be extended to the entire S (Theorems 2.6 and 2.7 ). This means that the modified definitioncovers the case of the original, seemingly more general definition. In the rest of the paper we work with themodified definition of a group. In Section 3 we also derive usual consequences of group axioms and formallyprove that the set of all permutations on a type with operation of composition is a group.In Section 4 we formally define subgroups, set products and cosets, and derive their properties, including atheorem about permutable groups. We prove that if H is a subgroup of a group G , then the relation R H := λx, y. ( x − · y ) ε H is an equivalence relation on G , and we study its connection to cosets of H .In Section 5 we formalize the concepts of normal subgroup and quotient group G/H and formally derive thefollowing facts: • being conjugate is an equivalence relation on elements of the group and on its subsets; • criteria of a normal subgroup; • normal subgroups of a fixed group are permutable; • a product of normal subgroups is also a normal subgroup; • a quotient group is indeed a group; • correspondence between subgroups of G/H and subgroups of G containing H (Correspondence Theo-rem).In our formalizations we aim to keep the language and theorems as close as possible to the ones of the standardmathematics. We follow the standard mathematical approach to group theory (as for example, in textbook [4]).We construct formal definitions and proofs in flag format introduced in [5] and [3] and explained more in [9].In this format each ”flag” contains a variable declaration or an assumption; its scope is determined by the ”flagpole” where definitions and proofs are developed. Several flags are often combined to make formal deductionsmore concise. Each formal proof generates a proof term; in proof of theorem, proposition or lemma with number n the resulting term is denoted with term n for future references. All proofs are given in full in Appendix, withonly proof sketches in the main part of the paper.
2. Type Theory λD Details of the language and derivation rules of the theory λD can be found in [8] and [6]. Judgments areformally derived in λD using the derivation rules. Here we only list the features that will be extensively used inthis paper.The following flag diagrams show three main derivation rules of λD : ( form ), ( abst ), and ( appl ). var A : s | B : s var x : A Π x : A.B : s (form)var x : A. . .M : Bλx : A.M : (Π x : A.B ) (abst)var M : (Π x : A.B ) | N : AM N : B (appl) ORMALIZING GROUPS IN TYPE THEORY 3
Letters s, s , s , . . . are variables for sorts ∗ or (cid:3) . There is only one type ∗ in λD . But informally we oftenuse ∗ p for propositions and ∗ s for sets to make proofs more readable.Arrow type A → B is a particular case of the dependent product Π x : A.B , when x is not a free variable in B . It has the following derived rules: var A : s | B : s A → B : s var x : A. . .M : Bλx : A.M : A → Bu : A → B | v : Auv : B In λD arrows are right associative, that is A → B → C is a shorthand for A → ( B → C ). λD As shown in [8], intuitionistic logic is naturally formalized in λD ; we briefly describe that here. Implication A ⇒ B is defined as the arrow type A → B and it has the same derived rules. Falsity ⊥ is defined by: ⊥ := Π A : ∗ p .A : ∗ p and has the derived rule: var B : ∗ p | u : ⊥ uB : B Negation is defined by: ¬ A := A ⇒ ⊥ . Next we list derived rules for other logical connectives and quantifiers. We abbreviate the proof terms forsome of the connectives and quantifiers to avoid too many repetitions in formal derivations; these abbreviationsdo not introduce any ambiguity.
Conjunction ∧ has the following rules: var A, B : ∗ p u : A | v : B -in ( A, B, u, v ) : A ∧ B This is shortened to ∧ ( u, v ) : A ∧ B w : A ∧ B ∧ -el ( A, B, w ) : A This is shortened to ∧ ( w ) : A ∧ -el ( A, B, w ) : B This is shortened to ∧ ( w ) : B F. KACHAPOVA
Disjunction ∨ has the following rules: var A, B : ∗ p u : A ∨ -in ( A, B, u ) : A ∨ B This is shortened to ∨ ( u ) : A ∨ B u : B ∨ -in ( A, B, u ) : A ∨ B This is shortened to ∨ ( u ) : A ∨ B C : ∗ p u : A ∨ B | v : A ⇒ C | w : B ⇒ C ∨ -el ( A, B, C, u, v, w ) : C This is shortened to ∨ ( u, v, w ) : C Bi-implication ⇔ is defined by:( A ⇔ B ) := ( A ⇒ B ) ∧ ( B ⇒ A ) . Universal quantifier ∀ is defined by: var S : ∗ s | P : S → ∗ p Definition ∀ ( S, P ) := Π x : S.P x : ∗ p Notation : ( ∀ x : S . Px ) for ∀ ( S, P ) Existential Quantifier ∃ has the following rules: var S : ∗ s | P : S → ∗ p var y : S | u : P y ∃ -in ( S, P, y, u ) : ( ∃ x : S.P x ) This is shortened to ∃ ( P, y, u ) : ( ∃ x : S.P x ) C : ∗ p u : ( ∃ x : S.P x ) | v : ( ∀ x : S. ( P x ⇒ C )) ∃ -el ( S, P, u, C, v ) : C This is shortened to ∃ ( u, v ) : C Here x is not a free variable in C .The latter of these rules is usually used in this form: var S : ∗ s | P : S → ∗ p | C : ∗ p . . .u : ( ∃ x : S.P x ) x : S | w : P x. . .b : Cv := λx : S.λw : P x.b : ( ∀ x : S. ( P x ⇒ C )) ∃ ( u, v ) : C ORMALIZING GROUPS IN TYPE THEORY 5
We shorten it to the following: var S : ∗ s | P : S → ∗ p | C : ∗ p . . .u : ( ∃ x : S.P x ) x : S | w : P x. . .b : C ∃ ( u, b ) : C Classical Logic.
We aim to use intuitionistic logic in most proofs. In some cases classical logic is needed(e.g., in subsection 2.6, where a function is extended from a subset of a type to the entire type). In these caseswe use λD with addition of the following Axiom of Excluded Third : var A : ∗ p exc-thrd ( A ) := ‚ : A ∨ ¬ A The axiom is introduced by a primitive definition with the symbol ‚ replacing a non-existing proof term. λD Intensional equality is introduced in [8] as follows: var S : ∗ | x, y : Seq ( S, x, y ) := Π P : S → ∗ p . ( P x ⇒ P y ) : ∗ p Notation : x = S y for eq ( S, x, y ) Intensional equality
We will call the intensional equality just equality. Next we list derived rules of equality from [8]. We addsome obvious rules that help to shorten formal proofs when symmetry property is necessary.
Reflexivity : var S : ∗ | x : S eq - ref l ( S, x ) : x = S x This is shortened to eq - ref l : x = S x Symmetry : var S : ∗ | x, y : S | u : x = S y eq - sym ( S, x, y, u ) : y = S x This is shortened to eq - sym ( u ) : y = S x Transitivity : var S : ∗ | x, y, z : S var u : x = S y | v : y = S z eq - trans ( S, x, y, z, u, v ) : x = S z This is shortened to eq - trans ( u, v ) : x = S z F. KACHAPOVA var u : x = S y | v : z = S ya := eq - sym ( v ) : y = S z eq - trans ( S, x, y, z, u, v ) := trans ( u, a ) : x = S z This is shortened to eq - trans ( u, v ) : x = S z var u : y = S x | v : y = S za := eq - sym ( u ) : x = S y eq - trans ( S, x, y, z, u, v ) := trans ( a , v ) : x = S z This is shortened to eq - trans ( u, v ) : x = S z Substitutivity : var S : ∗ | P : S → ∗ p | x, y : S | u : x = S y var v : P x eq - subs ( S, P, x, y, u, v ) :
P y
This is shortened to eq - subs ( P, u, v ) :
P y var v : P ya := eq - sym ( u ) : y = S x eq - subs ( S, P, x, y, u, v ) := eq - subs ( P, a , v ) : P x
This is shortened to eq - subs ( P, u, v ) :
P x
Congruence : var Q, S : ∗ | f : Q → S | x, y : Q | u : x = Q y eq - cong ( Q, S, f, x, y, u ) : f x = S f y This is shortened to eq - cong ( f, u ) : f x = S f y a := eq - sym ( u ) : y = Q x eq - cong ( Q, S, f, x, y, u ) := eq - cong ( f, a ) : f y = S f x This is shortened to eq - cong ( f, u ) : f y = S f x We will usually omit an index in =. λD Sets are introduced in [8] as follows. In particular, a subset of type S is defined as a predicate on S . var S : ∗ s ps ( S ) := S → ∗ p : (cid:3) Power set of Svar V : ps ( S )Notation: { x : S | V x } for λx : S.V x var x : S element ( S, x, V ) :=
V x : ∗ p Notation: xε S V or xεV for element ( S, x, V ) ∅ ( S ) := { x : S | ⊥} : ps ( S )Notation: ∅ S or ∅ for ∅ ( S ) ORMALIZING GROUPS IN TYPE THEORY 7 f ull - set ( S ) := { x : S | ¬⊥} : ps ( S ) var X, Y : ps ( S )Definition ∩ ( S, X, Y ) := { x : S | xεX ∧ xεY } : ps ( S )Notation : X ∩ Y for ∩ ( S, X, Y ) Intersection of two sets
Definition ∪ ( S, X, Y ) := { x : S | xεX ∨ xεY } : ps ( S )Notation : X ∪ Y for ∪ ( S, X, Y ) Union of two sets
Next we define intersection and union of a collection of sets. var S : ∗ s | U : ps ( ps ( S ))Definition ∩ ( S, U ) := { x : S | ∀ Z : ps ( S ) . ( ZεU ⇒ xεZ ) } : ps ( S )Notation : ∩ U for ∩ ( S, U ) Intersection of collection of sets
Definition ∪ ( S, U ) := { x : S | ∃ Z : ps ( S ) . ( ZεU ∧ xεZ ) } : ps ( S )Notation : ∪ U for ∪ ( S, U ) Union of collection of sets
Remark : According to this definition, the union of an empty collection of sets is ∅ and its intersection is f ull - set ( S ).Next diagram defines extensional equality of sets. var S : ∗ s | X, Y : ps ( S )Definition ⊆ ( S, X, Y ) := ( ∀ x : S. ( xεX ⇒ xεY )) : ∗ p Notation : X ⊆ Y for ⊆ ( S, X, Y )Definition Ex - eq ( S, X, Y ) := X ⊆ Y ∧ Y ⊆ X : ∗ p Notation : X = ext Y for Ex - eq ( S, X, Y ) Extensional equality
Corresponding axiom is added to λD : var S : ∗ s | X, Y : ps ( S ); | u : X = ext Y ext - axiom ( S, X, Y, u ) := ‚ : X = ps ( S ) Y Extensionality Axiom
The Extensionality Axiom identifies the two types of set equality.We also add to λD the following axiom of extensionality for functions: var Q, S : ∗ s | f, g : Q → S | u : ( ∀ x : Q.f x = S gx ) ext - axiom - f un ( Q, S, f, g, u ) := ‚ : f = Q → S g Extensionality Axiom for Functions
We will usually omit an index in = and we will not elaborate on details of applying either ExtensionalityAxiom when converting between different types of equality.
In [8] a binary relation on a type S is regarded as an object of type S → S → ∗ p . In [6] we formalized in λD the standard theory of binary relations on a type. Next we define a binary relation on a set. F. KACHAPOVA
Definition 2.1.
Here we define a binary relation R on a subset G of a type S and a property consistent ( S, G, R ) ,which means that the value of R on x, yεG does not depend on the proofs of xεG and yεG . var S : ∗ s | G : ps ( S ) var R : Π x : S. [( xεG ) → Π y : S. (( yεG ) → ∗ p )] consistent ( S, G, R ) := ∀ x : S. Π p, q : xεG. ∀ y : S. Π u, v : yεG. ( Rxpyu ⇔ Rxqyv ) : ∗ p Lemma 2.2.
Here we construct an extension Q of the binary relation R to the type S .Proof. This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | R : Π x : S. [( xεG ) → Π y : S. (( yεG ) → ∗ p )] . . .Q := . . . : S → S → ∗ p term . . ( S, G, R ) := Q : S → S → ∗ p Extension of R to Su : consistent ( S, G, R ) term . . ( S, G, R, u ) := . . . : ∀ x, y : S. ( xεG ⇒ yεG ⇒ Π p : xεG. Π q : yεG. ( Qxy ⇔ Rxpyq )) The full proof is in the Appendix, pg. 32. (cid:3)
Due to this lemma, we can replace the previous definition of a binary relation on a set, without loss ofgenerality, by the following more convenient definition.
Definition 2.3.
Definition of a binary relation R on a subset G of a type S , an equivalence relation on G , anda partition of G . var S : ∗ s | G : ps ( S ) var R : S → S → ∗ p R is a binary relation
Definition ref l ( S, G, R ) := ∀ x : S. ( xεG ⇒ Rxx ) : ∗ p R is reflexive on G
Definition sym ( S, G, R ) := ∀ x : S. [ xεG ⇒ ∀ y : S. ( yεG ⇒ Rxy ⇒ Ryx )] : ∗ p R is symmetric on G
Definition trans ( S, G, R ) := ∀ x : S. [ xεG ⇒ ∀ y : S. ( yεG ⇒ ∀ z : S. ( zεG ⇒ Rxy ⇒ Ryz ⇒ Rxz ))] : ∗ p R is transitive on G
Definition equiv - rel ( S, G, R ) := ref l ( S, G, R ) ∧ sym ( S, G, R ) ∧ trans ( S, G, R ) Definition partition ( S, G, R ) := ∀ x : S. ( xεG ⇒ xεRx ) ∧ ∀ x : S. [ xεG ⇒ ∀ y : S. ( yεG ⇒ ∀ z : S. ( zεG ⇒ zεRx ⇒ zεRy ⇒ ( Rx ) ∩ G = ( Ry ) ∩ G ))] : ∗ p R is a partition of G
In this definition the binary relation R has type S → S → ∗ p , i.e. R is defined on the whole type S , not justthe subset G . But all the properties of R are defined only for elements of G because we are interested in thebehavior of R on G only. We will call a binary relation just a relation. Proposition 2.4.
Any equivalence relation on a set G is a partition and vice versa.Proof. This is a sketch of the proof:
ORMALIZING GROUPS IN TYPE THEORY 9 var S : ∗ s | G : ps ( S ) | R : S → S → ∗ p . . . term . ( S, G, R ) := . . . : equiv - relation ( S, G, R ) ⇔ partition ( S, G, R ) The full proof is in the Appendix, pg. 32. (cid:3)
The following diagram defines existence with uniqueness in the language of λD . var S : ∗ | P : S → ∗ p ∃ x : S.P x := ∃ x : S.P x ∧ ∀ x, y : S. ( P x ⇒ P y ⇒ x = y )Iota descriptor is introduced in λD ([8], pg. 272 - 273) as a primitive definition: var S : ∗ | P : S → ∗ p | u : ( ∃ x : S.P x ) ι ( S, P, u ) := ‚ : S ι - prop ( S, P, u ) := ‚ : P ( ι ( S, P, u ))The following property of the iota descriptor is proven in [8]: var S : ∗ | P : S → ∗ p | u : ∃ x : S.P x. . . ι - unique ( S, P, u ) := . . . : ∀ y : S. ( P y ⇒ y = ι ( S, P, u ))In particular, this implies its proof irrelevance: the term ι ( S, P, u ) depends only on the existence of the proof u , not its content. In the following two theorems we use the iota descriptor to extend a function defined on a subset G of a type S , to the entire S . Definition 2.5.
Here we introduce some preliminary predicates.For a function f from a set G to type T : • consistent ( S, T, G, f ) means that the value of f on xεG does not depend on the proof of xεG ; • Ext - prop ( S, T, G, f, b, g ) means that g is an extension of f to the type S , with gx=b when x is outside G .Similar predicates consistent ( S, T, G, h ) and Ext - prop ( S, T, G, h, b, g ) are defined for a function h of twovariables from a set G to type T . var S, T : ∗ s | G : ps ( S ) var f : Π x : S. (( xεG ) → T ) Definition consistent ( S, T, G, f ) := ∀ x : S. Π p, q : xεG. ( f xp = f xq ) : ∗ p var b : T | g : S → T Definition
Ext - prop ( S, T, G, f, b, g ) := ∀ x : S. [Π p : xεG. ( gx = f xp ) ∧ ( ¬ ( xεG ) ⇒ gx = b )] : ∗ p var h : Π x : S. [( xεG ) → Π y : S. (( yεG ) → T )] Definition consistent ( S, T, G, h ) := ∀ x : S. Π p, q : xεG. ∀ y : S. Π u, v : yεG. ( hxpyu = hxqyv ) : ∗ p var b : T | g : S → S → T Definition
Ext - prop ( S, T, G, h, b, g ) := ∀ x, y : S. [Π p : xεG. Π q : yεG. ( gxy = hxpyq ) ∧ ( ¬ ( xεG ∧ yεG ) ⇒ gxy = b )] : ∗ p Theorem 2.6.
Suppose S and T are types, G is a subset of S , b : T , and f is a function from G to T . Herewe construct an extension f ∗ : S → T such that f ∗ x = ( f x if xεG,b if ¬ ( xεG ) . Proof.
The construction uses classical logic and the iota descriptor. It has the form: var
S, T : ∗ s | G : ps ( S ) | f : Π x : S. (( xεG ) → T ) b : T | u : consistent ( S, T, G, f ) . . .f ∗ := . . . : S → T Ext ( S, T, G, f, b, u ) := f ∗ : S → TExt - proof ( S, T, G, f, b, u ) := . . . : Ext - prop ( S, T, G, f, b, f ∗ )The full proof is in the Appendix, pg. 34. (cid:3) The following is a similar theorem for a function of two variables.
Theorem 2.7.
Suppose S and T are types, G is a subset of S , b : T , and f is a function of two variables on G . Here we construct an extension f ∗ : S → S → T such that f ∗ xy = ( f xy if xεG ∧ yεG,b if ¬ ( xεG ∧ yεG ) . Proof.
The construction is similar to the construction of the previous theorem and has the form: var
S, T : ∗ s | G : ps ( S ) | f : Π x : S. [( xεG ) → Π y : S. (( yεG ) → T )] b : T | u : consistent ( S, T, G, f ) . . .f ∗ := . . . : S → S → T Ext ( S, T, G, f, b, u ) := f ∗ : S → S → TExt - proof ( S, T, G, f, b, u ) := . . . : Ext - prop ( S, T, G, f, b, f ∗ )The full proof is in the Appendix, pg. 36. (cid:3) ORMALIZING GROUPS IN TYPE THEORY 11
3. Definition of a Group. Properties and Examples
Here we introduce in λD and compare three versions of definition of a group. Then we choose the best onefor formalizing group theory. Definition of a group and other corresponding definitions are given in the following flag diagram. var S : ∗ s | · : S → S → S Notation x · y f or · xy Definition assoc ( S, · ) := ∀ x, y, z : S. (( x · y ) · z = x · ( y · z )) : ∗ p Definition commut ( S, · ) := ∀ x, y : S. ( x · y = y · x ) : ∗ p Definition semi - group ( S, · ) := assoc ( S, · ) : ∗ p var e : S Definition identity ( S, · , e ) := ∀ x : S. ( x · e = x ∧ e · x = x ) : ∗ p Definition monoid ( S, · , e ) := semi - group ( S, · ) ∧ identity ( S, · , e ) : ∗ p var x, y : S Definition inverse ( S, · , e, x, y ) := ( x · y = e ∧ y · x = e ) : ∗ p var x : S Definition invertible ( S, · , e, x ) := ∃ y : S.inverse ( S, · , e, x, y ) : ∗ p var − : S → S Notation x − f or − x Definition group ( S, · , e, − ) := monoid ( S, · , e ) ∧ ∀ x : S.inverse ( S, · , e, x, x − ) : ∗ p Definition abelian - group ( S, · , e, − ) := group ( S, · , e, − ) ∧ commut ( S, · ) : ∗ p Proposition 3.2.
1) In a type with a binary operation the identity element (if exists) is unique.2) In a monoid the inverse of any element (if exists) is unique.Proof.
These are sketches of the proofs.1) var S : ∗ s | · : S → S → S var e, d : S | u : identity ( S, · , e ) | v : identity ( S, · , d ) . . . term . . ( S, · , e, d, u, v ) := . . . : e = d var S : ∗ s | · : S → S → S | e : S | u : monoid ( S, · , e ) var b, x, y : S | v : inverse ( S, · , e, b, x ) | w : inverse ( S, · , e, b, y ) . . . term . . ( S, · , e, u, b, x, y, v, w ) := . . . : x = y The full proofs are in the Appendix, pg. 38. (cid:3)
Example 3.3.
Suppose M is a type.1) The power set ps ( M ) with operation of intersection is a commutative monoid.2) The power set ps ( M ) with operation of union is a commutative monoid.Proof. These are sketches of the proofs. var M : ∗ s S := ps ( M ) : (cid:3) ∩ := λX, Y : S.X ∩ Y : S → S → S ∪ := λX, Y : S.X ∪ Y : S → S → SE := f ull - set ( M ) : Se := ∅ : S. . . term . . ( M ) := . . . : monoid ( S, ∩ , E ) ∧ commut ( S, ∩ ) term . . ( M ) := . . . : monoid ( S, ∪ , e ) ∧ commut ( S, ∪ ) The full proofs are in the Appendix, pg. 38. (cid:3)
Definition 3.4.
Here we define the identity function on a type M and composition of functions: var M : ∗ s id M := λx : M.x : M → M Identity function ◦ := λf, g : M → M.λx : M.f ( gx ) : ( M → M ) → M → M Operation of composition
Example 3.5.
Suppose M is a type. Then M → M with operation of composition is a monoid.Proof. This is a sketch of the proof: var M : ∗ s . . . term . ( M ) := . . . : monoid ( M → M, ◦ , id M ) The full proof is in the Appendix, pg. 42. (cid:3)
Example 3.6.
The type Z of all integers with operation of addition is an abelian group.Proof. In [8] the type Z and operations of addition and multiplication on Z are introduced axiomatically in λD ;also the integer arithmetic is developed in λD . Using that it is easy to prove that Z with operation of additionis an abelian group, where 0 is the identity and for any x , − x is regarded as its inverse. We skip the formalproof. (cid:3) This definition is for a group when it is a subset of a type. We use the formalization of afunction on a subset from [8] . ORMALIZING GROUPS IN TYPE THEORY 13 var S : ∗ s | G : ps ( S ) var inv : Π x : S. (( xεG ) → S ) Definition closure ( S, G, inv ) := ∀ x : S. Π p : xεG. (( inv xp ) ε G ) : ∗ p var mult : Π x : S. [( xεG ) → Π y : S. (( yεG ) → S )] Definition closure ( S, G, mult ) := ∀ x : S. Π p : xεG. ∀ y : S. Π q : yεG. (( mult xpyq ) ε G ) : ∗ p Definition assoc ( S, G, mult ) := ∀ x : S. Π p : xεG. ∀ y : S. Π q : yεG. Π u : ( mult xpyq ) εG. ∀ z : S. Π r : zεG. Π v : ( mult yqzr ) εG. mult ( mult xpyq ) uzr = mult xp ( mult yqzr ) v : ∗ p Definition semi - group ( S, G, mult ) := consistent ( S, S, G, mult ) ∧ closure ( S, G, mult ) ∧ assoc ( S, G, mult ) : ∗ p var e : S Definition identity ( S, G, mult, e ) := eεG ∧∀ x : S. Π p : xεG. Π q : eεG. ( mult xpeq = x ∧ mult eqxp = x ) : ∗ p Definition monoid ( S, G, mult, e ) := semi - group ( S, G, mult ) ∧ identity ( S, G, mult, e ) : ∗ p var inv : Π x : S. (( xεG ) → S ) Definition inverse ( S, G, mult, e, inv ) := ∀ x : S. Π p : xεG. Π q : ( inv xp ) ε G. [ mult xp ( inv xp ) q = e ∧ mult ( inv xp ) qxp = e ] : ∗ p Definition inverse - prop ( S, G, mult, e, inv ) := consistent ( S, S, G, inv ) ∧ closure ( S, G, inv ) ∧ inverse ( S, G, mult, e, inv ) : ∗ p Definition group ( S, G, mult, e, inv ) := monoid ( S, G, mult, e ) ∧ inverse - prop ( S, G, mult, e, inv ) : ∗ p The conditions consistent and consistent were defined in Definition 2.5. Here the condition consistent is added for the operation inv of taking inverse; this condition states that the value of inv on any element x from G depends only on the existence of proof of ( xεG ), not on its content. The similar condition consistent isadded for the operation mult of multiplication on G . These are particular cases of proof irrelevance . As notedin [8], proof irrelevance is desirable often but not always, therefore it is not added to λD as a general principle.Definition 3.7 is more general than Definition 3.1 but it makes proofs quite tedious. Instead we use thefollowing more convenient definition, when a group is a set but the operations of multiplication and takinginverse are defined on the entire type S , with group axioms specified only for the set. We will show that thenew definition covers the cases of the previous two definitions. Definition 3.8.
Main Definition of Group .The following diagram defines that a subset G of a type S is a group. var S : ∗ s var − : S → S Notation x − f or − x var G : ps ( S ) Definition
Closure ( S, G, − ) := ∀ x : S. ( xεG ⇒ x − εG ) : ∗ p var · : S → S → S Notation x · y f or · xy var e, x, y : S Definition
Inverse ( S, · , e, x, y ) := ( x · y = e ∧ y · x = e ) : ∗ p var G : ps ( S ) Definition
Closure ( S, G, · ) := ∀ x : S. [ xεG ⇒ ∀ y : S. ( yεG ⇒ ( x · y ) ε G )] : ∗ p Definition
Assoc ( S, G, · ) := ∀ x : S. [ xεG ⇒ ∀ y : S. [ yεG ⇒ ∀ z : S. ( zεG ⇒ ( x · y ) · z = x · ( y · z ))]] : ∗ p Definition
Commut ( S, G, · ) := ∀ x : S. [ xεG ⇒ ∀ y : S. ( yεG ⇒ x · y = y · x )] : ∗ p Definition
Semi - group ( S, G, · ) := Closure ( S, G, · ) ∧ Assoc ( S, G, · ) : ∗ p var e : S Definition
Identity ( S, G, · , e ) := eεG ∧ ∀ x : S. [ xεG ⇒ ( x · e = x ∧ e · x = x )] : ∗ p Definition
M onoid ( S, G, · , e ) := Semi - group ( S, G, · ) ∧ Identity ( S, G, · , e ) : ∗ p var − : S → S Definition
Inverse ( S, G, · , e, − ) := ∀ x : S. ( xεG ⇒ Inverse ( S, · , e, x, x − )) : ∗ p Definition
Inverse - prop ( S, G, · , e, − ) := Closure ( S, G, − ) ∧ Inverse ( S, G, · , e, − ) : ∗ p Definition
Group ( S, G, · , e, − ) := M onoid ( S, G, · , e ) ∧ Inverse - prop ( S, G, · , e, − ) : ∗ p Definition
Abelian - group ( S, G, · , e, − ) := Group ( S, G, · , e, − ) ∧ Commut ( S, G, · ) : ∗ p We use the usual shorthand for multiplication: x · y · z means ( x · y ) · z . Example 3.9.
Suppose a type S is a monoid. Then the set of all its invertible elements is a group.Proof. This is a sketch of the proof. var S : ∗ s | · : S → S → S | e : S Definition
Inv - set ( S, · , e ) := { x : S | invertible ( S, · , e, x ) } : ps ( S )Notation G := Inv - set ( S, · , e ) : ps ( S ) u : monoid ( S, · , e ) . . . Definition
Inv ( S, · , e, u ) := . . . : S → S Notation − for Inv ( S, · , e, u ) . . . term . ( S, · , e, u ) := . . . : Group ( S, G, · , e, − )The full proof is in the Appendix, pg. 42. (cid:3) Lemma 3.10.
Definition 3.1 is a particular case of Definition 3.8.Proof.
This is a sketch of the proof.
ORMALIZING GROUPS IN TYPE THEORY 15 var S : ∗ s | · : S → S → S | e : S | − : S → S | u : group ( S, · , e, − ) G := f ull - set ( S ) : ps ( S ) . . . term . ( S, · , e, − , u ) := . . . : Group ( S, G, · , e, − )The full proof is in the Appendix, pg. 45. (cid:3) Lemma 3.11.
Definition 3.7 reduces to Definition 3.8: if subset G of type S is a group in terms of Definition3.7, then the group operations of G can be extended to S and G becomes a group in terms of Definition 3.8.Proof. The statement seems obvious (when using Theorems 2.6 and 2.7) but the formal proof is quite long. Thisis a sketch of the proof: var S : ∗ s | G : ps ( S ) | mult : Π x : S. [( xεG ) → Π y : S. (( yεG ) → S )] | inv : Π x : S. (( xεG ) → S ) e : S | u : group ( S, G, mult, e, inv ) . . .c := . . . : consistent ( S, S, G, mult ) c := . . . : consistent ( S, S, G, inv ) . . . Definition − := Ext ( S, S, G, inv, e, c ) : S → S Definition · := Ext ( S, S, G, mult, e, c ) : S → S → S. . .c := . . . : Group ( S, G, · , e, − )The full proof is in the Appendix, pg. 46. (cid:3) According to Lemmas 3.10 and 3.11, we do not need Definitions 3.7 and 3.1. In the rest of the paper we willuse only Definition 3.8, the Main Definition of Group.
We use the definition of bijection from [8] . var S, T : ∗ s | f : S → T Definition inj ( S, T, f ) := ∀ x , x : S. ( f x = f x ⇒ x = x ) : ∗ p Injective function
Definition surj ( S, T, f ) := ∀ y : T. ∃ x : S. ( f x = y ) : ∗ p Surjective function
Definition bij ( S, T, f ) := inj ( S, T, f ) ∧ surj ( S, T, f ) : ∗ p Bijective function
Definition 3.13.
Here we define permutation on a type M as a bijection of M to itself. var M : ∗ s var f : M → M Definition permutation ( M, f ) := bij ( M, M, f ) : ∗ p Permutation on M
Definition
P erm ( M ) := { f : M → M | permutation ( M, f ) } : ps ( M → M ) Lemma 3.14.
For each permutation f on the type M we construct its inverse invrs(M,f) . This is a sketch ofthe construction. var M : ∗ s | f : M → M | u : f εP erm ( M ) . . . invrs ( M, f, u ) := . . . : M → M Inverse of permutation f
Notation g := invrs ( M, f, u ) : M → M. . . term . ( M, f, u ) := . . . : inverse ( M → M, ◦ , id M , f, g ) The full construction is in the Appendix, pg. 48.
Proposition 3.15.
Suppose f is an element of the monoid ( M → M, ◦ , id M ) from Example 3.5. Then f is invertible ⇔ f is a permuation on M. Proof.
This is a sketch of the proof. var M : ∗ s | f : M → M. . . term . ( M, f ) := . . . : invertible ( M → M, ◦ , id M , f ) ⇔ f εP erm ( M ) The full proof is in the Appendix, pg. 49. (cid:3)
Theorem 3.16.
The set of all permutations on a type M with operation of composition is a group.Proof. This is a sketch of the proof. var M : ∗ s a := term . M ) : monoid ( M → M, ◦ , id M ) − := Inv ( M → M, ◦ , id M , a ) : ( M → M ) → M → M. . . term . ( M ) := . . . : Group ( M → M, P erm ( M ) , ◦ , id M , − ) The full proof is in the Appendix, pg. 50. (cid:3)
The flag diagram in this technical lemma produces proof terms that will be used in future proofs. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := ∧ ( ∧ ( u )) : Semi - group ( S, G, · ) a := ∧ ( ∧ ( u )) : Identity ( S, G, · , e ) a := ∧ ( ∧ ( u )) : Closure ( S, G, − ) ORMALIZING GROUPS IN TYPE THEORY 17 a := ∧ ( ∧ ( u )) : Inverse ( S, G, · , e, − ) a := ∧ ( a ) : Closure ( S, G, · ) Gr ( S, G, · , e, − , u ) := ∧ ( a ) : eεGGr ( S, G, · , e, − , u ) := ∧ ( a ) : Assoc ( S, G, · ) var x : S | v : xεGa := ∧ ( a ) xv : x · e = x ∧ e · x = x Gr ( S, G, · , e, − , u, x, v ) := a xv : x − εGGr ( S, G, · , e, − , u, x, v ) := ∧ ( a ) : x · e = xGr ( S, G, · , e, − , u, x, v ) := ∧ ( a ) : e · x = xGr ( S, G, · , e, − , u, x, v ) := a xv : Inverse ( S, · , e, x, x − ) Gr ( S, G, · , e, − , u, x, v ) := ∧ ( a xv ) : x · x − = eGr ( S, G, · , e, − , u, x, v ) := ∧ ( a xv ) : x − · x = e var y : S | w : yεG Gr ( S, G, · , e, − , u, x, y, v, w ) := a xvyw : ( x · y ) εG Proposition 3.18.
For any elements x, y, z of a group G with identity e :1) x · y = z ⇒ y = x − · z ,2) y · x = z ⇒ y = z · x − ,3) x · y = e ⇒ y = x − ,4) y · x = e ⇒ y = x − ,5) ( x · y ) − = y − · x − ,6) ( x − ) − = x ,7) x · x = x ⇒ x = e ,8) e − = e .Proof. This is a sketch of the proof for all parts. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var x : S | v : xεG var y : S | w : yεG var z : S | r : zεG. . . term . . ( S, G, · , e, − , u, x, y, z, v, w, r ) := . . . : ( x · y = z ⇒ y = x − · z ) . . . term . . ( S, G, · , e, − , u, x, y, z, v, w, r ) := . . . : ( y · x = z ⇒ y = z · x − ) . . . term . . ( S, G, · , e, − , u, x, y, v, w ) := . . . : ( x · y = e ⇒ y = x − ) . . . term . . ( S, G, · , e, − , u, x, y, v, w ) := . . . : ( y · x = e ⇒ y = x − ) . . . term . . ( S, G, · , e, − , u, x, y, v, w ) := . . . : ( x · y ) − = y − · x − . . . term . . ( S, G, · , e, − , u, x, v ) := . . . : ( x − ) − = x . . . term . . ( S, G, · , e, − , u, x, v ) := . . . : ( x · x = x ⇒ x = e ) . . . term . . ( S, G, · , e, − , u ) := . . . : e − = e The full proof is in the Appendix, pg. 50. (cid:3)
4. Subgroups4.1. Definitions and ExamplesDefinition 4.1.
Here we define a subgroup H of a group G and a corresponding relation R H on G . var S : ∗ s | · : S → S → S | G : ps ( S ) | − : S → S var H : ps ( S ) Definition R ( S, · , − , H ) := λx, y : S. ( x − · y ) ε H : S → S → ∗ p Notation R H for R ( S, · , − , H ) var e : S Definition
Subgroup ( S, G, · , e, − , H ) := H ⊆ G ∧ eεH ∧ Closure ( S, H, − ) ∧ Closure ( S, H, · ) : ∗ p Notation: H G for Subgroup ( S, G, · , e, − , H )Here we used the predicates Closure and Closure introduced in Definition 3.8. Proposition 4.2.
1) A subgroup is a group itself.2) If B and C are subgroups of a group G and C ⊆ B , then C is a subgroup of B .Proof. These are sketches of the proofs.1) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G. . . term . . ( S, G, · , e, − , u, H, v ) := . . . : Group ( S, H, · , e, − ) ORMALIZING GROUPS IN TYPE THEORY 19 var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B G | v : C G | w : C ⊆ B. . . term . . ( S, G, · , e, − , u, B, C, v , v , w ) := . . . : C B The full proofs are in the Appendix, pg. 52. (cid:3)
Proposition 4.3. If G is a group with identity e , then the following sets are its subgroups:1) G ;2) { e } ;3) intersection of any two subgroups of G ;4) intersection of any non-empty collection of subgroups of G .Proof. These are sketches of the proofs.1) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) . . . term . . ( S, G, · , e, − , u ) := . . . : G G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − )Notation H := { x : S | x = e } : ps ( S ) . . . term . . ( S, G, · , e, − , u ) := . . . : H G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B G | w : C G. . . term . . ( S, G, · , e, − , u, B, C, v, w ) := . . . : B ∩ C G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var U : ps ( ps ( S )) | v : ( ∃ X : ps ( S ) .XεU ) | w : [ ∀ X : ps ( S ) . ( XεU ⇒ X G )] . . . term . . ( S, G, · , e, − , u, U, v, w ) := . . . : ∩ U G The full proofs are in the Appendix, pg. 53. (cid:3)
Example 4.4.
Suppose m is a positive integer. In the abelian additive group Z from Example 3.6 the set m Z of all multiples of m is a subgroup.Proof. We define formally m Z := { x : Z | ∃ n : Z . ( x = mn ) } . As in Example 3.6, we refer to the formalization of integer arithmetic in [8] and skip the formal proof. (cid:3)
Proposition 4.5.
For any subgroup H of a group G the predicate R H is an equivalence relation on G .Proof. This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G. . . term . ( S, G, · , e, − , u, H, v ) := . . . : equiv - rel ( S, G, R H ) The full proof is in the Appendix, pg. 56. (cid:3)
Proposition 4.6.
Suppose H is a subgroup of a group G . Then for any elements x, y of G : R H xy ⇔ ( R H x ∩ G = R H y ∩ G ) . Proof.
This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G var x, y : S | w : xεG | w : yεG. . . term . ( S, G, · , e, − , u, H, v, x, y, w , w ) := . . . : R H xy ⇔ ( R H x ∩ G = R H y ∩ G ) The full proof is in the Appendix, pg. 57. (cid:3)
In the following diagram we define products g · B , B · g , B · C , and B − , where g is an elementof type S , and B and C are subsets of S . var S : ∗ s var · : S → S → S var B : ps ( S ) | g : S Definition mt ( S, · , B, g ) := { x : S | ∃ b : S. ( bεB ∧ x = g · b ) } : ps ( S ) Notation g · B for mt ( S, · , B, g ) Definition mt ( S, · , B, g ) := { x : S | ∃ b : S. ( bεB ∧ x = b · g ) } : ps ( S ) Notation B · g for mt ( S, · , B, g ) ORMALIZING GROUPS IN TYPE THEORY 21 var
B, C : ps ( S ) Definition
M t ( S, · , B, C ) := { x : S | ∃ c : S. ( cεC ∧ xε ( B · c ) } : ps ( S ) Notation B · C for M t ( S, · , B, C ) Definition
M t ( S, · , B, C ) := { x : S | ∃ b : S. ( bεB ∧ xε ( b · C ) } : ps ( S ) var − : S → S | B : ps ( S ) Definition Iv ( S, − , B ) := { x : S | ∃ b : S. ( bεB ∧ x = b − ) } : ps ( S ) Notation B − for Iv ( S, − , B ) If H is a subgroup of a group G , then sets of the form ( x · H ) are called left cosets and of the form ( H · x ) - right cosets .Remark: the multiplication on S and the dots in g · C , B · g , B · C are all different operations but for brevitywe use the same symbol for all of them. We use a similar convention for set inverse. Lemma 4.8.
Under conditions of Definition 4.7:
M t ( S, · , B, C ) = M t ( S, · , B, C ) . Proof.
This is a sketch of the proof: var S : ∗ s | · : S → S → S | B, C : ps ( S ) . . . term . ( S, · , B, C ) := . . . : M t ( S, · , B, C ) = M t ( S, · , B, C ) The full proof is in the Appendix, pg. 58. (cid:3)
Due to this lemma, we can use the notation B · C for both M t ( S, · , B, C ) and M t ( S, · , B, C ). We will dothat for brevity and we will not elaborate on details of substituting one of them with the other. Lemma 4.9.
Suppose B and C are subsets of type S , bεB , cεC , and g is an element of S . Then the followinghold.1) b − ε B − .2) ( g · b ) ε ( g · B ) .3) ( b · g ) ε ( B · g ) .4) ( b · c ) ε ( B · C ) .Proof. This is a sketch of the proof for all parts. var S : ∗ s var − : S → S | B : ps ( S ) | b : S | u : bεB. . . term . . ( S, − , B, b, u ) := . . . : b − εB − var · : S → S → S | B : ps ( S ) | g, b : S | u : bεB. . . term . . ( S, · , B, g, b, u ) := . . . : ( g · b ) ε ( g · B ) term . . ( S, · , B, g, b, u ) := . . . : ( b · g ) ε ( B · g )var · : S → S → S | B, C : ps ( S ) | b, c : S | u : bεB | v : cεC. . . term . . ( S, · , B, C, b, c, u, v ) := . . . : ( b · c ) ε ( B · C ) The full proof is in the Appendix, pg. 59. (cid:3)
Proposition 4.10.
Suppose H is a subgroup of a group G and x, y are elements of G . Then the following hold.1) x · H = R H x ∩ G ;2) x · H = y · H ⇔ R H xy .Proof. This is a sketch of the proof. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G | x : S | w : xεG. . . term . . ( S, G, · , e, − , u, H, v, x, w ) := . . . : x · H = R H x ∩ G var y : S | r : yεG. . . term . . ( S, G, · , e, − , u, H, v, x, y, w, r ) := . . . : x · H = y · H ⇔ R H xy The full proof is in the Appendix, pg. 59. (cid:3)
Lemma 4.11.
Suppose G is a group with identity e . Then for any element g of G and subsets B, C of G thefollowing hold.1) e · B = B .2) B · e = B .3) B − ⊆ G .4) ( g · B ) ⊆ G .5) ( B · g ) ⊆ G .6) ( g · B ) − = B − · g − .7) ( B · g ) − = g − · B − .8) ( B · C ) ⊆ G .9) ( B · C ) − = C − · B − .Proof. These are sketches of the proofs.1) - 3) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B : ps ( S ) | v : B ⊆ G. . .
ORMALIZING GROUPS IN TYPE THEORY 23 term . . ( S, G, · , e, − , u, B, v ) := . . . : e · B = B . . . term . . ( S, G, · , e, − , u, B, v ) := . . . : B · e = B . . . term . . ( S, G, · , e, − , u, B, v ) := . . . : B − ⊆ G
4) - 7) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B : ps ( S ) | v : B ⊆ G | g : S | w : gεG. . . term . . ( S, G, · , e, − , u, B, v, g, w ) := . . . : ( g · B ) ⊆ G . . . term . . ( S, G, · , e, − , u, B, v, g, w ) := . . . : ( B · g ) ⊆ G . . . term . . ( S, G, · , e, − , u, B, v, g, w ) := . . . : ( g · B ) − = B − · g − . . . term . . ( S, G, · , e, − , u, B, v, g, w ) := . . . : ( B · g ) − = g − · B −
8) - 9) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B ⊆ G | w : B ⊆ G. . . term . . ( S, G, · , e, − , u, B, C, v, w ) := . . . : ( B · C ) ⊆ G . . . term . . ( S, G, · , e, − , u, B, C, v, w ) := . . . : ( B · C ) − = C − · B − The full proofs are in the Appendix, pg. 61. (cid:3)
Proposition 4.12.
For any elements g, h of a group G and subsets B, C, D of G the following hold.1) ( B · g ) · h = B · ( g · h ) ;2) ( g · B ) · h = g · ( B · h ) ;3) ( g · h ) · B = g · ( h · B ) ;4) ( B · C ) · g = B · ( C · g ) ;5) ( B · g ) · C = B · ( g · C ) ;6) ( g · B ) · C = g · ( B · C ) ;7) ( B · C ) · D = B · ( C · D ) . Proof.
These are sketches of the proofs.1) - 3) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B : ps ( S ) | v : B ⊆ G | g, h : S | w : gεG | w : hεG. . . term . . ( S, G, · , e, − , u, B, v, g, h, w , w ) := . . . : ( B · g ) · h = B · ( g · h ) . . . term . . ( S, G, · , e, − , u, B, v, g, h, w , w ) := . . . : ( g · B ) · h = g · ( B · h ) . . . term . . ( S, G, · , e, − , u, B, v, g, h, w , w ) := . . . : ( g · h ) · B = g · ( h · B )
4) - 6) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B ⊆ G | v : C ⊆ G | g : S | w : gεG. . . term . . ( S, G, · , e, − , u, B, C, v , v , g, w ) := . . . : ( B · C ) · g = B · ( C · g ) . . . term . . ( S, G, · , e, − , u, B, C, v , v , g, w ) := . . . : ( B · g ) · C = B · ( g · C ) . . . term . . ( S, G, · , e, − , u, B, C, v , v , g, w ) := . . . : ( g · B ) · C = g · ( B · C ) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C, D : ps ( S ) | v : B ⊆ G | v : C ⊆ G | v : D ⊆ G. . . term . . ( S, G, · , e, − , u, B, C, D, v , v , v ) := . . . : ( B · C ) · D = B · ( C · D ) The full proofs are in the Appendix, pg. 67. (cid:3)
Proposition 4.13.
Suppose H and D are subgroups of a group G and g is an element of G . Then the followinghold.1) H − = H .2) H · H = H .3) ( H · D ) − = D · H .4) ( g · H ) − = H · g − .5) ( H · g ) − = g − · H .6) ( g − · H · g ) is a subgroup of G . ORMALIZING GROUPS IN TYPE THEORY 25 g · H = H ⇔ gεH .Proof. These are sketches of the proofs.1) - 3) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G. . . term . . ( S, G, · , e, − , u, H, v ) := . . . : H − = Hterm . . ( S, G, · , e, − , u, H, v ) := . . . : H · H = H var D : ps ( S ) | w : D G. . . term . . ( S, G, · , e, − , u, H, D, v, w ) := . . . : ( H · D ) − = D · H
4) - 6) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G | g : S | w : gεG. . . term . . ( S, G, · , e, − , u, H, v, g, w ) := . . . : ( g · H ) − = H · g − term . . ( S, G, · , e, − , u, H, v, g, w ) := . . . : ( H · g ) − = g − · H . . . term . . ( S, G, · , e, − , u, H, v, g, w ) := . . . : ( g − · H · g ) G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G | g : S | w : gεG. . . term . . ( S, G, · , e, − , u, H, v, g, w ) := . . . : ( g · H = H ) ⇔ gεH The full proofs are in the Appendix, pg. 74. (cid:3)
Theorem 4.14.
Let B and C be subgroups of a group G . Then ( B · C ) is a subgroup of G if and only if B · C = C · B . In this case B and C are called permutable .Proof. This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B G | w : C G. . . term . ( S, G, · , e, − , u, B, C, v, w ) := . . . : ( B · C ) G ⇔ B · C = C · B The full proof is in the Appendix, pg. 78. (cid:3)
5. Normal Subgroups and Quotient Groups5.1. Normal SubgroupsDefinition 5.1.
Let B be a subset of a group G and x, g be elements of G .1) ( g − · x · g ) is called a conjugate of x .2) ( g − · B · g ) is called a conjugate of B . Proposition 5.2.
1) Being conjugate is an equivalence relation on a fixed group.2) Being conjugate is an equivalence relation on subsets of a fixed group.3) Being conjugate is an equivalence relation on subgroups of a fixed group.Proof.
This is a sketch of the proof for all parts. var S : ∗ s | G : ps ( S )Definition Subs ( S, G ) := { B : ps ( S ) | B ⊆ G } : ps ( ps (( S ))Notation M for Subs ( S, G ) var · : S → S → S | − : S → S Definition R c := λx, y : S. ∃ g : S. ( gεG ∧ y = g − · x · g ) : S → S → ∗ p Definition R s := λB, C : ps ( S ) . ∃ g : S. ( gεG ∧ C = g − · B · g ) : ps ( S ) → ps ( S ) → ∗ p var e : S Definition
Subg ( S, G, · , e, − ) := { B : ps ( S ) | B G } : ps ( ps (( S ))Notation K for Subg ( S, G, · , e, − ) u : Group ( S, G, · , e, − ) . . . term . . ( S, G, · , e, − , u ) := . . . : equiv - rel ( S, G, R c ) . . . term . . ( S, G, · , e, − , u ) := . . . : equiv - rel ( ps ( S ) , M, R s ) . . . term . . ( S, G, · , e, − , u ) := . . . : equiv - rel ( ps ( S ) , K, R s ) The full proof is in the Appendix, pg. 79. (cid:3)
Definition 5.3.
Normal subgroup.var S : ∗ s | · : S → S → S | G : ps ( S ) | e : S | − : S → S var H : ps ( S ) Definition
N ormal - subgroup ( S, G, · , e, − , H ) := H G ∧∀ g : S. [ gεG ⇒ ∀ h : S. ( hεH ⇒ ( g − · h · g ) ε H )] : ∗ p Notation:
H ⊳ G for
N ormal - subgroup ( S, G, · , e, − , H ) Proposition 5.4.
Let G be a group with identity e . Then ORMALIZING GROUPS IN TYPE THEORY 27 G is a normal subgroup of G ;2) { e } is a normal subgroup of G .Proof. These are sketches of the proofs.1) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) . . . term . . ( S, G, · , e, − , u ) := . . . : G ⊳ G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − )Notation H := { x : S | x = e } : ps ( S ) . . . term . . ( S, G, · , e, − , u ) := . . . : H ⊳ G
The full proofs are in the Appendix, pg. 84. (cid:3)
Proposition 5.5.
Any subgroup of an abelian group is normal.Proof.
This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Abelian - group ( S, G, · , e, − ) var H : ps ( S ) | v : H G. . . term . ( S, G, · , e, − , u, H, v ) := . . . : H ⊳ G
The full proof is in the Appendix, pg. 85. (cid:3)
Theorem 5.6.
Suppose H is a subgroup of a group G . Then intersection of all sets of the form ( x − · H · x ) , xεG , is a normal subgroup of G .Proof. This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H GU := { Z : ps ( S ) | ∃ x : S. ( xεG ∧ Z = x − · H · x ) } : ps ( ps ( S )) N := ∩ U : ps ( S ) . . . term . ( S, G, · , e, − , u, H, v ) := . . . : N ⊳ G
The full proof is in the Appendix, pg. 86. (cid:3)
Proposition 5.7.
Suppose H is a subgroup of a group G . Then the following conditions are equivalent.1) H ⊳ G ;2) for any element g of G : ( g − · H · g ) = H ;
3) for any element g of G : ( g · H · g − ) = H ;4) for any element g of G : g · H = H · g ;5) for any element g of G : ( g − · H · g ) ⊆ H .Proof. It is sufficient to prove the following implications:1) ⇒ ⇒ ⇒ ⇒ ⇒ . This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G Notation A := ∀ g : S. ( gεG ⇒ ( g − · H · g ) = H ) : ∗ p Notation B := ∀ g : S. ( gεG ⇒ ( g · H · g − ) = H ) : ∗ p Notation C := ∀ g : S. ( gεG ⇒ g · H = H · g ) : ∗ p Notation D := ∀ g : S. ( gεG ⇒ ( g − · H · g ) ⊆ H ) : ∗ p . . . term . . ( S, G, · , e, − , u, H, v ) := . . . : H ⊳ G ⇒ A . . . term . . ( S, G, · , e, − , u, H, v ) := . . . : A ⇒ B . . . term . . ( S, G, · , e, − , u, H, v ) := . . . : B ⇒ C . . . term . . ( S, G, · , e, − , u, H, v ) := . . . : C ⇒ D . . . term . . ( S, G, · , e, − , u, H, v ) := . . . : D ⇒ H ⊳ G
The full proof is in the Appendix, pg. 88. (cid:3)
Corollary 5.8.
Suppose H is a subgroup of a group G . Then H ⊳ G ⇔ ∀ g : S. ( gεG ⇒ g · H = H · g ) . Proof.
This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) v : H ⊳ G. . . term . . ( S, G, · , e, − , u, H, v ) := . . . : [ ∀ g : S. ( gεG ⇒ g · H = H · g )] v : H G | w : [ ∀ g : S. ( gεG ⇒ g · H = H · g )] . . . term . . ( S, G, · , e, − , u, H, v, w ) := . . . : H ⊳ G
ORMALIZING GROUPS IN TYPE THEORY 29
The full proof is in the Appendix, pg. 90. (cid:3)
Lemma 5.9.
For any normal subgroup H of a group G and elements x, y of G :1) ( x · H ) − = x − · H ;2) ( x · H ) · ( y · H ) = ( x · y ) · H .Proof. This is a sketch of the proof for both parts. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H ⊳ G var x : S | w : xεG. . . term . . ( S, G, · , e, − , u, H, v, x, w ) := . . . : ( x · H ) − = x − · H var x, y : S | w : xεG | w : yεG term . . ( S, G, · , e, − , u, H, v, x, y, w , w ) := . . . : ( x · H ) · ( y · H ) = x · y · H The full proof is in the Appendix, pg. 91. (cid:3)
Theorem 5.10.
Suppose B is a subgroup of a group G and H is a normal subgroup of G . Then the followinghold.1) B ∩ H is a normal subgroup of B .2) B · H = H · B .3) ( B · H ) is a subgroup of G .Proof. This is a sketch of the proof for all parts. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, H : ps ( S ) | v : B G | w : H ⊳ G. . . term . . ( S, G, · , e, − , u, B, H, v, w ) := . . . : ( B ∩ H ) ⊳ B . . . term . . ( S, G, · , e, − , u, B, H, v, w ) := . . . : B · H = H · B . . . term . . ( S, G, · , e, − , u, B, H, v, w ) := : ( B · H ) G The full proof is in the Appendix, pg. 92. (cid:3)
Theorem 5.11.
Suppose B and C are normal subgroups of a group G . Then the following hold.1) B · C is a normal subgroup of G .2) If B ∩ C = { e } , then for any bεB and cεC : b · c = c · b. Proof.
This is a sketch of the proof for both parts. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B ⊳ G | w : C ⊳ G. . . term . . ( S, G, · , e, − , u, B, C, v, w ) := . . . : ( B · C ) ⊳ G r : [ ∀ g : S. ( gεB ⇒ gεC ⇒ g = e )] var b : S | r : bεB | c : S | r : cεC. . . term . . ( S, G, · , e, − , u, B, C, v, w, r , b, c, r , r ) := . . . : b · c = c · b The full proof is in the Appendix, pg. 93. (cid:3)
Quotient group
G/H is defined for a normal subgroup H of a group G . var S : ∗ s | · : S → S → S | G : ps ( S ) | e : S | − : S → S var H : ps ( S ) Definition
Quotient - group ( S, G, · , e, − , H ) := { X : ps ( S ) | ∃ x : S. ( xεG ∧ X = x · H ) } : ps ( ps ( S )) Notation
G/H for
Quotient - group ( S, G, · , e, − , H ) Notation E := ( e · H ) Theorem 5.13. If H is a normal subgroup of a group G , then the set G/H is a group with identity E , wherethe operations of set multiplication and taking set inverse are from Definition 4.7.Proof. This is a sketch of the proof: var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H ⊳ G. . . term . ( S, G, · , e, − , u, H, v ) := . . . : Group ( ps ( S ) , G/H, · , E, − ) The full proof is in the Appendix, pg. 95. (cid:3)
Example 5.14.
In Example 3.6 we considered the abelian additive group Z and in Example 4.4 its subgroup m Z , where m is an arbitrary positive integer.By Proposition 5.5, m Z is a normal subgroup of Z and by Theorem 5.13 the quotient group Z / ( m Z ) is agroup; it is denoted Z m . Theorem 5.15.
Correspondence Theorem . Suppose H is a normal subgroup of a group G . Then thefollowing hold.1) If B is a subgroup of G containing H , then H ⊳ B and
B/H G/H .2) If C is a subgroup of G/H , then there is a subgroup B of G such that H ⊳ B and C = B/H . ORMALIZING GROUPS IN TYPE THEORY 31
Proof.
These are sketches of the proofs.1) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H, B : ps ( S ) | v : H ⊳ G | v : B G | w : H ⊆ B. . . term . . ( S, G, · , e, − , u, H, B, v , v , w ) := . . . : ( H ⊳ B ) ∧ ( B/H G/H ) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H ⊳ G | C : ps ( ps ( S )) | w : C G/H
Notation B := { x : S | xεG ∧ x · H ε C } : ps ( S ) . . . term . . ( S, G, · , e, − , u, H, C, v, w ) := . . . : B G ∧ ( H ⊳ B ) ∧ ( C = B/H ) The full proofs are in the Appendix, pg. 98. (cid:3)
6. Conclusion
Using the approach from [8] to formalizing sets in type theory as predicates on a type, we formalize somefoundation concepts of group theory in λD , the Calculus of Constructions with Definitions. The theory λD ischosen because of its beneficial features such as decidability of type checking and proof checking, and proofs-as-terms interpretation.In type theory it is not easy to deal with sets which are not proper types. For groups we overcame thisdifficulty as follows. For a group G , which is a subset of a type S we assume that its operations of multiplicationand taking inverse are defined on the entire type S , while specific groups axioms hold only on G . We showthat this causes no loss of generality if classical logic is used. This approach simplifies formal derivations in λD relating to groups.We formalize in λD the concepts of group, subgroup, coset, conjugate, normal subgroup, and quotient group,and derive some related theorems. In particular, we formally derive in λD : • criteria for a normal subgroup; • the necessary and sufficient condition for a product of subgroups to be a subgroup; • the theorem about correspondence between subgroups of G containing a normal subgroup H , and sub-groups of the quotient group G/H .The results can be implemented in proof assistants based on calculus of constructions. Due to the abstractnature of group theory, the results can be used for formalizing other parts of mathematics.We keep our formalizations as close as possible to the standard mathematical practice. In formal definitionsand proofs we use the flag format. In λD we added some derived logical rules and abbreviations for existingderived rules to streamline formal proofs and make them more concise and readable.Next we plan to continue formalizing group theory in λD including finite groups, homomorphisms, generators,and related theorems, and to formalize other algebraic structures in λD . AppendixProof of Lemma 2.2var S : ∗ s | G : ps ( S ) | R : Π x : S. [( xεG ) → Π y : S. (( yεG ) → ∗ p )]Definition Q := λx, y : S. ( xεG ∧ yεG ∧ Π p : xεG. Π q : yεG.Rxpyq ) : S → S → ∗ p term . . ( S, G, R ) := Q : S → S → ∗ p Extension of R to Su : consistent ( S, G, R ) var x, y : S | v : xεG | v : yεG var p : xεG | q : yεGw : Qxya := ∧ ( w ) pq : Rxpyqa := λw : Qxy.a : Qxy ⇒ Rxpyqw : Rxpyq var p : xεG | q : yεGa := uxpp yqq : ( Rxpyq ⇔ Rxp yq ) a := ∧ ( a ) w : Rxp yq a := λp : xεG.λq : yεG.a : (Π p : xεG. Π q : yεG.Rxp yq ) a := ∧ ( ∧ ( v , v ) , a ) : Qxya := λw : Rxpyq.a : Rxpyq ⇒ Qxya := ∧ ( a , a ) : Qxy ⇔ Rxpyq term . . ( S, G, R, u ) := λx, y : S.v : xεG.λv : yεG.λp : xεG.λq : yεG.a : ∀ x, y : S. ( xεG ⇒ yεG ⇒ Π p : xεG. Π q : yεG. ( Qxy ⇔ Rxpyq ))Proof of Proposition 2.4var S : ∗ s | G : ps ( S ) | R : S → S → ∗ p Notation A := ∀ x : S. ( xεG ⇒ xεRx ) : ∗ p Notation B := ∀ x : S. [ xεG ⇒ ∀ y : S. ( yεG ⇒ ∀ z : S. ( zεG ⇒ zεRx ⇒ zεRy ⇒ ( Rx ) ∩ G = ( Ry ) ∩ G ))] : ∗ p u : equiv - rel ( S, G, R ) a := ∧ ( ∧ ( u )) : ref l ( S, G, R ) a := ∧ ( ∧ ( u )) : sym ( S, G, R ) a := ∧ ( u ) : trans ( S, G, R ) var x : S | v : xεGa := a xv : Rxxa : ( xεRx ) a := λx : S.λv : xεG.a : A ORMALIZING GROUPS IN TYPE THEORY 33 var x : S | v : xεG | y : S | v : yεG | z : S | v : zεG | w : zεRx | w : zεRyw : Rxzw : Ryza := a xv zv w : Rzxa := a yv zv xv w a : Ryx var t : S | w : tε ( Rx ) ∩ Ga := ∧ ( w ) : tεRxa := ∧ ( w ) : tεGa : Rxta := a yv xv ta a a : Ryta : tεRya := ∧ ( a , a ) : tε ( Ry ) ∩ Ga ( x, v , y, v , z, v , w , w ) := λt : S.λw : tε ( Rx ) ∩ G.a : ( Rx ) ∩ G ⊆ ( Ry ) ∩ Ga := a ( x, v , y, v , z, v , w , w ) : ( Rx ) ∩ G ⊆ ( Ry ) ∩ Ga := a ( y, v , x, v , z, v , w , w ) : ( Ry ) ∩ G ⊆ ( Rx ) ∩ Ga := ∧ ( a , a ) : ( Rx ) ∩ G = ( Ry ) ∩ Ga := λx : S.λv : xεG.λy : S.λv : yεG.λz : S.λv : zεG.λw : zεRx.λw : zεRy.a : Ba := ∧ ( a , a ) : partition ( S, G, R ) a := λu : equiv - rel ( S, G, R ) .a : equiv - rel ( S, G, R ) ⇒ partition ( S, G, R ) u : partition ( S, G, R ) u : A ∧ Ba := ∧ ( u ) : Aa := ∧ ( u ) : B var x : S | v : xεGa ( x, v ) := a xv : xεRxa := a ( x, v ) : Rxxa := λx : S.λv : xεG.a : ref l ( S, G, R ) var x : S | v : xεG | y : S | v : yεG | w : Rxyw : yεRxa := a ( y, v ) : yεRya := a xv yv yv wa : ( Rx ) ∩ G = ( Ry ) ∩ Ga := a ( x, v ) : xεRxa := ∧ ( a , v ) : xε ( Rx ) ∩ Ga := ∧ ( a ) xa : xε ( Ry ) ∩ Ga := ∧ ( a ) : xεRy a : Ryxa := λx : S.λv : xεG.λy : S.λv : yεG.λw : Rxy.a : sym ( S, G, R ) var x : S | v : xεG | y : S | v : yεG | z : S | v : zεG | w : Rxy | w : Ryzw : yεRxa := a yv zv w : Rzya : yεRza := a zv xv yv a w : ( Rz ) ∩ G = ( Rx ) ∩ Ga := a ( z, v ) : zεRza := ∧ ( a , v ) : zε ( Rz ) ∩ Ga := ∧ ( a ) za : zε ( Rx ) ∩ Ga := ∧ ( a ) : zεRxa : Rxza := λx : S.λv : xεG.λy : S.λv : yεG.λz : S.λv : zεG.λw : Rxy.λw : Ryz.a : trans ( S, G, R ) a := ∧ ( ∧ ( a , a ) , a ) : equiv - rel ( S, G, R ) a := λu : partition ( S, G, R ) .a : partition ( S, G, R ) ⇒ equiv - rel ( S, G, R ) term . ( S, G, R ) := ∧ ( a , a ) : equiv - relation ( S, G, R ) ⇔ partition ( S, G, R )Proof of Theorem 2.6
We use the classical Axiom of Excluded Third with the proof term exc - thrd and the iota descriptor. var S, T : ∗ s | G : ps ( S ) | f : Π x : S. (( xεG ) → T ) var b : T | u : consistent ( S, T, G, f )Notation P := λx : S.λy : T. [Π p : xεG. ( y = f xp ) ∧ ( ¬ ( xεG ) ⇒ y = b )] : S → T → ∗ p var x : Sa := exc - thrd ( xεG ) : xεG ∨ ¬ ( xεG ) v : ¬ ( xεG )Notation y := b : Ta := eq - ref l : y = ba := λw : ¬ ( xεG ) .a : ( ¬ ( xεG ) ⇒ y = b ) var p : xεGa := vp : ⊥ a := a ( y = f xp ) : y = f xpa := λp : xεG.a : (Π p : xεG. ( y = f xp )) a := ∧ ( a , a ) : P xya := ∃ ( P x, y, a ) : ( ∃ y : T.P xy ) a := λv : ¬ ( xεG ) .a : ( ¬ ( xεG ) ⇒ ∃ y : T.P xy ) ORMALIZING GROUPS IN TYPE THEORY 35 v : xεG Notation y := f xv : Tw : ¬ ( xεG ) a := wv : ⊥ a := a ( y = b ) : y = ba := λw : ¬ ( xεG ) .a : ( ¬ ( xεG ) ⇒ y = b ) var p : xεGa := uxvp : f xv = f xpa : y = f xpa := λp : xεG.a : (Π p : xεG. y = f xp ) a := ∧ ( a , a ) : P xya := ∃ ( P x, y, a ) : ( ∃ y : T.P xy ) a := λv : xεG.a : ( xεG ⇒ ∃ y : T.P xy ) a := ∨ ( a , a , a ) : ( ∃ y : T.P xy ) var y, z : T | v : P xy | v : P xza := ∧ ( v ) : (Π p : xεG. y = f xp ) a := ∧ ( v ) : ( ¬ ( xεG ) ⇒ y = b ) a := ∧ ( v ) : (Π p : xεG. z = f xp ) a := ∧ ( v ) : ( ¬ ( xεG ) ⇒ z = b ) w : ¬ ( xεG ) a := a w : y = ba := a w : z = ba := eq - trans ( a , a ) : y = za := λw : ¬ ( xεG ) .a : ( ¬ ( xεG ) ⇒ y = z ) w : xεGa := a w : y = f xwa := a w : z = f xwa := eq - trans ( a , a ) : y = za := λw : xεG.a : ( xεG ⇒ y = z ) a := ∨ ( a , a , a ) : y = za := λy, z : T.λv : P xy.λv : P xz.a : ∀ y, z : T. ( P xy ⇒ P xz ⇒ y = z ) a := ∧ ( a , a ) : ( ∃ y : T.P xy ) c ( x ) := ι ( T, P x, a ) : Td ( x ) := ι - prop ( T, P x, a ) : P xc ( x ) f ∗ := λx : S.c ( x ) : S → T Ext ( S, T, G, f, b, u ) := f ∗ : S → T var x : Sd ( x ) : P xc ( x ) d ( x ) : P x ( f ∗ x ) Ext - proof ( S, T, G, f, b, u ) := λx : S.d ( x ) : [ ∀ x : S.P x ( f ∗ x )] Ext - proof ( S, T, G, f, b, u ) :
Ext - prop ( S, T, G, f, b, f ∗ ) Proof of Theorem 2.7var
S, T : ∗ s | G : ps ( S ) | f : Π x : S. [( xεG ) → Π y : S. (( yεG ) → T )] b : T | u : consistent ( S, T, G, f )Notation P := λx, y : S.λz : T. [Π p : xεG. Π q : yεG. ( z = f xpyq ) ∧ ( ¬ ( xεG ∧ yεG ) ⇒ z = b )] : S → S → T → ∗ p var x, y : Sa := exc - thrd ( xεG ∧ yεG ) : ( xεG ∧ yεG ) ∨ ¬ ( xεG ∧ yεG ) v : xεG ∧ yεGa := ∧ ( v ) : xεGa := ∧ ( v ) : yεG Notation z := f xa ya : Tw : ¬ ( xεG ∧ yεG ) a := wv : ⊥ a := a ( z = b ) : z = ba := λw : ¬ ( xεG ∧ yεG ) .a : ( ¬ ( xεG ∧ yεG ) ⇒ z = b ) var p : xεG | q : yεGa := uxa pya q : f xa ya = f xpyqa : z = f xpyqa := λp : xεG.λq : yεG.a : (Π p : xεG. Π q : yεG. z = f xpyq ) a := ∧ ( a , a ) : P xyza := ∃ ( P xy, z, a ) : ( ∃ z : T.P xyz ) a := λv : ( xεG. ∧ yεG ) .a : ( xεG ∧ yεG ) ⇒ ∃ z : T.P xyzv : ¬ ( xεG ∧ yεG )Notation z := b : Ta := eq - ref l : z = ba := λw : ¬ ( xεG ∧ yεG ) .a : ( ¬ ( xεG ∧ yεG ) ⇒ z = b ) var p : xεG | q : yεGa := ∧ ( p, q ) : ( xεG ∧ yεG ) ORMALIZING GROUPS IN TYPE THEORY 37 a := va : ⊥ a := a ( z = f xpyq ) : z = f xpyqa := λp : xεG.λq : yεG.a : (Π p : xεG. Π q : yεG. z = f xpyq ) a := ∧ ( a , a ) : P xyza := ∃ ( P xy, z, a ) : ( ∃ z : T.P xyz ) a := λv : ¬ ( xεG ∧ yεG ) .a : ( ¬ ( xεG ∧ yεG ) ⇒ ∃ z : T.P xyz ) a := ∨ ( a , a , a ) : ( ∃ z : T.P xyz ) var z , z : T | v : P xyz | v : P xyz a := ∧ ( v ) : (Π p : xεG. Π q : yεG. z = f xpyq ) a := ∧ ( v ) : ¬ ( xεG ∧ yεG ) ⇒ z = ba := ∧ ( v ) : (Π p : xεG. Π q : yεG. z = f xpyq ) a := ∧ ( v ) : ¬ ( xεG ∧ yεG ) ⇒ z = bw : xεG ∧ yεGa := ∧ ( w ) : xεGa := ∧ ( w ) : yεGa := a a a : z = f xa ya a := a a a : z = f xa ya a := eq - trans ( a , a ) : z = z a := λw : ( xεG ∧ yεG ) .a : ( xεG ∧ yεG ⇒ z = z ) w : ¬ ( xεG ∧ yεG ) a := a w : z = ba := a w : z = ba := eq - trans ( a , a ) : z = z a := λw : ¬ ( xεG ∧ yεG ) .a : ( ¬ ( xεG ∧ yεG ) ⇒ z = z ) a := ∨ ( a , a , a ) : z = z a := λz , z : T.λv : P xyz .λv : P xyz .a : [ ∀ z , z : T. ( P xyz ⇒ P xyz ⇒ z = z )] a := ∧ ( a , a ) : ( ∃ z : T.P xyz ) c ( x, y ) := ι ( T, P xy, a ) : Td ( x, y ) := ι - prop ( T, P xy, a ) : P xyc ( x, y ) f ∗ := λx, y : S.c ( x, y ) : S → S → T Ext ( S, T, G, f, b, u ) := f ∗ : S → S → T var x, y : Sd ( x, y ) : P xyc ( x, y ) d ( x, y ) : P xy ( f ∗ xy ) Ext - proof ( S, T, G, f, b, u ) := λx, y : S.d ( x, y ) : [ ∀ x, y : S.P xy ( f ∗ xy )] Ext - proof ( S, T, G, f, b, u ) :
Ext - prop ( S, T, G, f, b, f ∗ ) Proof of Proposition 3.2 var S : ∗ s | · : S → S → S var e, d : S | u : identity ( S, · , e ) | v : identity ( S, · , d ) a := ∧ ( ud ) : d · e = da := ∧ ( ve ) : d · e = e term . . ( S, · , e, d, u, v ) := eq - trans ( a , a ) : e = d var S : ∗ s | · : S → S → S | e : S | u : monoid ( S, · , e ) a := ∧ ( u ) : assoc ( S, · ) a := ∧ ( u ) : identity ( S, · , e ) var b, x, y : Sa := ∧ ( a x ) : e · x = xa := ∧ ( a y ) : y · e = yv : inverse ( S, · , e, b, x ) | w : inverse ( S, · , e, b, y ) a := ∧ ( v ) : b · x = ea := ∧ ( w ) : y · b = ea := a ybx : ( y · b ) · x = y · ( b · x ) a := eq - cong ( λz : S. ( z · x ) , a ) : e · x = ( y · b ) · xa := eq - cong ( λz : S. ( y · z ) , a ) : y · ( b · x ) = y · e term . . ( S, · , e, u, b, x, y, v, w ) := eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) : x = y Proof of Example 3.3var M : ∗ s S := ps ( M ) : (cid:3) ∩ := λX, Y : S.X ∩ Y : S → S → S ∪ := λX, Y : S.X ∪ Y : S → S → SE := f ull - set ( M ) : Se := ∅ : S var X, Y : S var x : Mu : x ε ( X ∩ Y ) a := ∧ ( u ) : xεXa := ∧ ( u ) : xεY ORMALIZING GROUPS IN TYPE THEORY 39 a := ∧ ( a , a ) : xεY ∧ xεXa := λu : x ε ( X ∩ Y ) .a : ( x ε ( X ∩ Y ) ⇒ x ε ( Y ∩ X )) u : x ε ( X ∪ Y ) u : xεX ∨ xεYv : xεXa := ∨ ( v ) : x ε ( Y ∪ X ) a := λv : xεX.a : ( xεX ⇒ x ε ( Y ∪ X )) v : xεYa := ∨ ( v ) : x ε ( Y ∪ X ) a := λv : xεY.a : ( xεY ⇒ x ε ( Y ∪ X )) a := ∨ ( u, a , a ) : x ε ( Y ∪ X ) a := λu : x ε ( X ∪ Y ) .a : ( x ε ( X ∪ Y ) ⇒ x ε ( Y ∪ X )) a ( X, Y ) := λx : M.a : X ∩ Y ⊆ Y ∩ Xa ( X, Y ) := λx : M.a : X ∪ Y ⊆ Y ∪ Xa := ∧ ( a ( X, Y ) , a ( Y, X )) : X ∩ Y = Y ∩ Xa := ∧ ( a ( X, Y ) , a ( Y, X )) : X ∪ Y = Y ∪ Xa := λX, Y : S.a : commut ( S, ∩ ) a := λX, Y : S.a : commut ( S, ∪ ) var X : S var x : Mu : xεXa := λv : ⊥ .v : ⊥ → ⊥ a : ¬⊥ a := ∧ ( u, a ) : x ε ( X ∩ E ) a := ∨ ( u ) : x ε ( X ∪ e ) a := λu : xεX.a : ( xεX ⇒ x ε ( X ∩ E )) a := λu : xεX.a : ( xεX ⇒ x ε ( X ∪ e )) a := λu : x ε ( X ∩ E ) . ∧ ( u ) : ( x ε ( X ∩ E ) ⇒ xεX ) u : x ε ( X ∪ e ) u : xεX ∨ ⊥ a := λv : xεX.v : ( xεX ⇒ xεX ) a := λv : ⊥ .v ( xεX ) : ( ⊥ ⇒ xεX ) a := ∨ ( u, a , a ) : xεXa := λu : x ε ( X ∪ e ) .a : ( x ε ( X ∪ e ) ⇒ xεX ) a := λx : M.a : X ⊆ X ∩ Ea := λx : M.a : X ⊆ X ∪ e a := λx : M.a : X ∩ E ⊆ Xa := λx : M.a : X ∪ e ⊆ Xa := ∧ ( a , a ) : X ∩ E = Xa := ∧ ( a , a ) : X ∪ e = Xa := a EX : E ∩ X = X ∩ Ea := a eX : e ∪ X = X ∪ ea := eq - trans ( a , a ) : E ∩ X = Xa := eq - trans ( a , a ) : e ∪ X = Xa := ∧ ( a , a ) : ( X ∩ E = X ) ∧ ( E ∩ X = X ) a := ∧ ( a , a ) : ( X ∪ e = X ) ∧ ( e ∪ X = X ) a := λX : S.a : identity ( S, ∩ , E ) a := λX : S.a : identity ( S, ∪ , e ) var X, Y, Z : S var x : Mu : x ε (( X ∩ Y ) ∩ Z ) a := ∧ ( u ) : x ε ( X ∩ Y ) a := ∧ ( a ) : xεXa := ∧ ( a ) : xεYa := ∧ ( u ) : xεZa := ∧ ( a , ∧ ( a , a )) : x ε ( X ∩ ( Y ∩ Z )) a := λu : x ε (( X ∩ Y ) ∩ Z ) .a : [ x ε (( X ∩ Y ) ∩ Z ) ⇒ x ε ( X ∩ ( Y ∩ Z ))] u : x ε ( X ∩ ( Y ∩ Z )) a := ∧ ( u ) : xεXa := ∧ ( u ) : x ε ( Y ∩ Z ) a := ∧ ( a ) : xεYa := ∧ ( a ) : xεZa := ∧ ( ∧ ( a , a ) , a ) : x ε (( X ∩ Y ) ∩ Z ) a := λu : x ε ( X ∩ ( Y ∩ Z )) .a : [ x ε ( X ∩ ( Y ∩ Z )) ⇒ x ε (( X ∩ Y ) ∩ Z )] u : x ε (( X ∪ Y ) ∪ Z ) u : x ε ( X ∪ Y ) ∨ xεZv : x ε ( X ∪ Y ) v : xεX ∨ xεYa := λw : xεX. ∨ ( w ) : ( xεX ⇒ x ε ( X ∪ ( Y ∪ Z ))) w : xεYa := ∨ ( w ) : x ε ( Y ∪ Z ) ORMALIZING GROUPS IN TYPE THEORY 41 a := ∨ ( a ) : x ε ( X ∪ ( Y ∪ Z )) a := λw : xεY.a : [ xεY ⇒ x ε ( X ∪ ( Y ∪ Z ))] a := ∨ ( v, a , a ) : x ε ( X ∪ ( Y ∪ Z )) a := λv : x ε ( X ∪ Y ) .a : [ x ε ( X ∪ Y ) ⇒ x ε ( X ∪ ( Y ∪ Z ))] v : xεZa := ∨ ( v ) : x ε ( Y ∪ Z ) a := ∨ ( a ) : x ε ( X ∪ ( Y ∪ Z )) a := λv : xεZ.a : [ xεZ ⇒ x ε ( X ∪ ( Y ∪ Z ))] a := ∨ ( u, a , a ) : x ε ( X ∪ ( Y ∪ Z )) a := λu : xε ( X ∪ Y ) ∪ Z.a : [ x ε (( X ∪ Y ) ∪ Z ) ⇒ x ε ( X ∪ ( Y ∪ Z ))] a := λx : M.a : ( X ∩ Y ) ∩ Z ⊆ X ∩ ( Y ∩ Z ) a := λx : M.a : X ∩ ( Y ∩ Z ) ⊆ ( X ∩ Y ) ∩ Za ( X, Y, Z ) := λx : M.a : ( X ∪ Y ) ∪ Z ⊆ X ∪ ( Y ∪ Z ) a := ∧ ( a , a ) : ( X ∩ Y ) ∩ Z = X ∩ ( Y ∩ Z ) a := a ( Z, Y, X ) : ( Z ∪ Y ) ∪ X ⊆ Z ∪ ( Y ∪ X ) a := a ZY : Z ∪ Y = Y ∪ Za := a Y X : Y ∪ X = X ∪ Ya := eq - subs ( λD : S. ( D ∪ X ⊆ ( Z ∪ Y ) ∪ X ) , a , a ) : ( Y ∪ Z ) ∪ X ⊆ Z ∪ ( Y ∪ X ) a := eq - subs ( λD : S. (( Y ∪ Z ) ∪ X ⊆ Z ∪ D ) , a , a ) : ( Y ∪ Z ) ∪ X ⊆ Z ∪ ( X ∪ Y ) a := a ( Y ∪ Z ) X : ( Y ∪ Z ) ∪ X = X ∪ ( Y ∪ Z ) a := a Z ( X ∪ Y ) : Z ∪ ( X ∪ Y ) = ( X ∪ Y ) ∪ Za := eq - subs ( λD : S. ( D ⊆ Z ∪ ( X ∪ Y )) , a , a ) : X ∪ ( Y ∪ Z ) ⊆ Z ∪ ( X ∪ Y ) a := eq - subs ( λD : S. ( X ∪ ( Y ∪ Z ) ⊆ D ) , a , a ) : X ∪ ( Y ∪ Z ) ⊆ ( X ∪ Y ) ∪ Za := ∧ ( a ( X, Y, Z ) , a ) : ( X ∪ Y ) ∪ Z = X ∪ ( Y ∪ Z ) a := λX, Y, Z : S.a : assoc ( S, ∩ ) a := λX, Y, Z : S.a : assoc ( S, ∪ ) a := ∧ ( a , a ) : monoid ( S, ∩ , E ) a := ∧ ( a , a ) : monoid ( S, ∪ , e ) term . . ( M ) := ∧ ( a , a ) : monoid ( S, ∩ , E ) ∧ commut ( S, ∩ )
1) is proven term . . ( M ) := ∧ ( a , a ) : monoid ( S, ∪ , e ) ∧ commut ( S, ∪ )
2) is proven
Proof of Example 3.5
Here we implicitly use the Axiom of Extensionality for functions. var M : ∗ s var f, g, h : M → M var x : Ma := eq - ref l : (( f ◦ g ) ◦ h ) x = (( f ◦ g ) ◦ h ) xa : (( f ◦ g ) ◦ h ) x = f ( g ( hx )) a := eq - ref l : ( f ◦ ( g ◦ h )) x = ( f ◦ ( g ◦ h )) xa : ( f ◦ ( g ◦ h )) x = f ( g ( hx )) a := eq - trans ( a , a ) : (( f ◦ g ) ◦ h ) x = ( f ◦ ( g ◦ h )) xa := λx : M.a : ( f ◦ g ) ◦ h = f ◦ ( g ◦ h ) a := λf, g, h : M → M.a : assoc ( M → M, ◦ ) var f : M → M var x : Ma := eq - ref l : ( f ◦ id M ) x = ( f ◦ id M ) xa : ( f ◦ id M ) x = f ( id M x ) a ( x ) := eq - ref l : id M x = xa := eq - cong ( f, a ( x )) : f ( id M x ) = f xa := eq - trans ( a , a ) : ( f ◦ id M ) x = f xa := eq - ref l : ( id M ◦ f ) x = ( id M ◦ f ) xa : ( id M ◦ f ) x = id M ( f x ) a := a ( f x ) : id M ( f x ) = f xa := eq - trans ( a , a ) : ( id M ◦ f ) x = f xa := λx : M.a : f ◦ id M = fa := λx : M.a : id M ◦ f = fa := ∧ ( a , a ) : f ◦ id M = f ∧ id M ◦ f = fa := λf : M → M.a : identity ( M → M, ◦ , id M ) term . ( M ) := ∧ ( a , a ) : monoid ( M → M, ◦ , id M )Proof of Example 3.9 For the monoid S we use Definition 3.1, since S is a type here. To prove that the set of all its invertibleelements is a group we show that this set satisfies the conditions of Definition 3.8, the Main Definition of Group.In the following proof we use the terms derived in Theorem 2.6. var S : ∗ s | · : S → S → S | e : S Definition
Inv - set ( S, · , e ) := { x : S | invertible ( S, · , e, x ) } : ps ( S )Notation G := Inv - set ( S, · , e ) : ps ( S ) ORMALIZING GROUPS IN TYPE THEORY 43 u : monoid ( S, · , e ) a := ∧ ( u ) : assoc ( S, · ) a := ∧ ( u ) : identity ( S, · , e ) var x : S | v : xεG | y : S | v : yεG | z : S | v : zεGa := a xyz : ( x · y ) · z = x · ( y · z ) a := λx : S.λv : xεG.λy : S.λv : yεG.λz : S.λv : zεG.a : Assoc ( S, G, · ) a := a e : e · e = e ∧ e · e = ea : inverse ( S, · , e, e, e ) a := ∃ ( λy : S.inverse ( S, · , e, e, y ) , e, a ) : invertible ( S, · , e, e ) a : eεGa := λx : S.λv : xεG.a x : [ ∀ x : S. ( xεG ⇒ x · e = x ∧ e · x = x )] a := ∧ ( a , a ) : Identity ( S, G, · , e ) var x : S | v : xεGv : ( ∃ z : S. ( x · z = e ∧ z · x = e )) var z : S | r : ( x · z = e ∧ z · x = e ) a := ∧ ( r ) : x · z = ea := ∧ ( r ) : z · x = e var y : S | w : yεGw : ( ∃ z : S. ( y · z = e ∧ z · y = e )) var z : S | r : ( y · z = e ∧ z · y = e ) a := ∧ ( r ) : y · z = ea := ∧ ( r ) : z · y = ea := eq - cong ( λt : S. ( x · t ) , a ) : x · ( y · z ) = x · ea := ∧ ( a x ) : x · e = xa := a xyz : x · y · z = x · ( y · z ) a := eq - trans ( eq - trans ( a , a ) , a ) : x · y · z = xa := eq - cong ( λt : S. ( t · z ) , a ) : x · y · z · z = x · z a := a ( x · y ) z z : x · y · z · z = x · y · ( z · z ) a := eq - trans ( eq - trans ( a , a ) , a ) : x · y · ( z · z ) = ea := eq - cong ( λt : S. ( t · y ) , a ) : z · x · y = e · ya := ∧ ( a y ) : e · y = ya := a z xy : z · x · y = z · ( x · y ) a := eq - trans ( eq - trans ( a , a ) , a ) : z · ( x · y ) = ya := eq - cong ( λt : S. ( z · t ) , a ) : z · ( z · ( x · y )) = z · ya := a z z ( x · y ) : z · z · ( x · y ) = z · ( z · ( x · y )) a := eq - trans ( eq - trans ( a , a ) , a ) : z · z · ( x · y ) = ea := ∧ ( a , a ) : ( x · y ) · ( z · z ) = e ∧ ( z · z ) · ( x · y ) = ea := ∃ ( λt : S. (( x · y ) · t = e ∧ t · ( x · y ) = e ) , ( z · z ) , a ) : ( x · y ) ε Ga := ∃ ( w, a ) : ( x · y ) ε Ga := λy : S.λw : y ε G.a : [ ∀ y : S. ( yεG ⇒ ( x · y ) ε G )] a := ∃ ( v, a ) : [ ∀ y : S. ( yεG ⇒ ( x · y ) ε G )] a := λx : S.λv : xεG.a : Closure ( S, G, · ) a := ∧ ( ∧ ( a , a ) , a ) : M onoid ( S, G, · )Notation P := λx, y : S.inverse ( S, · , e, x, y ) : S → S → ∗ p var x : S | v : xεGv : ( ∃ y : S.P xy ) var y , y : S | w : P xy | w : P xy w : inverse ( S, · , e, x, y ) w : inverse ( S, · , e, x, y ) a := term . . ( S, · , e, u, x, y , y , w , w ) : y = y a := λy , y : S.λw : P xy .λw : P xy .a : [ ∀ y , y : S. ( P xy ⇒ P xy ⇒ y = y )] a := ∧ ( v, a ) : ( ∃ y : S.P xy ) ivs ( x, v ) := ι ( S, P x, a ) : Sa ( x, v ) := ι - prop ( S, P x, a ) : P x ( ivs ( x, v )) var w : xεGa := a ( x, w ) : P x ( ivs ( x, w )) a := ι - unique ( S, P x, a )( ivs ( x, w )) a : ivs ( x, w ) = ivs ( x, v ) a := eq - sym ( a ) : ivs ( x, v ) = ivs ( x, w ) a := λx : S.λv, w : xεG.a : [ ∀ x : S. Π v, w : xεG. ( ivs ( x, v ) = ivs ( x, w ))] Ivs := λx : S.λv : xεG.ivs ( x, v ) : Π x : S. (( xεG ) → S ) a : consistent ( S, S, G, Ivs )Definition
Inv ( S, · , e, u ) := Ext ( S, S, G, Ivs, e, a ) : S → S Notation − for Inv ( S, · , e, u )Notation: x − for − xa := Ext - proof ( S, S, G, Ivs, e, a ) : ∀ x : s. [Π p : xεG. ( x − = Ivs xp ) ∧ ( ¬ ( xεG ) ⇒ x − = e )] var x : S | v : xεGa := ∧ ( a x ) v : x − = Ivs xva : x − = ivs ( x, v ) a := a ( x, v ) : P x ( ivs ( x, v )) a := eq - subs ( P x, a , a ) : P x ( x − ) a : Inverse ( S, · , e, x, x − ) ORMALIZING GROUPS IN TYPE THEORY 45 a := ∧ ( a ) : x · x − = ea := ∧ ( a ) : x − · x = ea := ∧ ( a , a ) : x − · x = e ∧ x · x − = ea : inverse ( S, · , e, x − , x ) a := ∃ ( λy : S.inverse ( S, · , e, x − , y ) , x, a ) : x − εGa := λx : S.λv : xεG.a : Closure ( S, G, − ) a := λx : S.λv : xεG.a : Inverse ( S, G, · , e, − ) term . ( S, · , e, u ) := ∧ ( a , ∧ ( a , a )) : Group ( S, G, · , e, − )Proof of Lemma 3.10var S : ∗ s | · : S → S → S | e : S | − : S → S | u : group ( S, · , e, − ) G := f ull - set ( S ) : ps ( S ) a := ∧ ( u ) : monoid ( S, · , e ) a := ∧ ( u ) : ( ∀ x : S.inverse ( S, · , e, x, x − )) a := ∧ ( a ) : assoc ( S, · ) a := ∧ ( a ) : identity ( S, · , e ) a := λv : ⊥ .v : ¬⊥ a : eεG var x : S | v : xεGa : x − εGa := a x : x · e = x ∧ e · x = xa := a x : x · x − = e ∧ x − · x = e var y : S. | w : yεGa : ( x · y ) ε G var z : S. | r : zεGa := a xyz : ( x · y ) · z = x · ( y · z ) a := λy : S.λw : yεG.λz : S.λr : zεG.a : [ ∀ y : S. [ yεG ⇒ ∀ z : S. ( zεG ⇒ ( x · y ) · z = x · ( y · z ))] a := λy : S.λw : yεG.a : [ ∀ y : S. ( yεG ⇒ ( x · y ) ε G )] a := λx : S.λv : xεG.a : Closure ( S, G, · ) a := λx : S.λv : xεG.a : Assoc ( S, G, · ) a := λx : S.λv : xεG.a : Inverse ( S, G, · , e, − ) a := λx : S.λv : xεG.a : Closure ( S, G, · , − ) a := λx : S.λv : xεG.a : [ ∀ x : S. ( xεG ⇒ x · e = x ∧ e · x = x )] a := ∧ ( a , a ) : Identity ( S, G, · , e, − ) a := ∧ ( a , a ) : Inverse - prop ( S, G, · , e, − ) a := ∧ ( a , a ) : Semi - group ( S, G, · ) term . ( S, · , e, − , u ) := ∧ ( ∧ ( a , a ) , a ) : Group ( S, G, · , e, − )Proof of Lemma 3.11 In this proof we use the terms derived in Theorems 2.6 and 2.7. var S : ∗ s | G : ps ( S ) | mult : Π x : S. [( xεG ) → Π y : S. (( yεG ) → S )] | inv : Π x : S. (( xεG ) → S ) e : S | u : group ( S, G, mult, e, inv ) a := ∧ ( ∧ ( ∧ ( ∧ ( u )))) : consistent ( S, S, G, mult ) a := ∧ ( ∧ ( ∧ ( ∧ ( u )))) : closure ( S, G, mult ) a := ∧ ( ∧ ( ∧ ( u ))) : assoc ( S, G, mult ) a := ∧ ( ∧ ( ∧ ( u ))) : eεGa := ∧ ( ∧ ( ∧ ( u ))) : [ ∀ x : S. Π p : xεG. Π q : eεG. ( mult xpeq = x ∧ mult eqxp = x )] a := ∧ ( ∧ ( ∧ ( u ))) : consistent ( S, S, G, inv ) a := ∧ ( ∧ ( ∧ ( u ))) : closure ( S, G, inv ) a := ∧ ( ∧ ( u )) : inverse ( S, G, mult, e, inv )Definition − := Ext ( S, S, G, inv, e, a ) : S → S Notation x − for − xa := Ext - proof ( S, S, G, inv, e, a ) : Ext - prop ( S, S, G, inv, e, − )Definition · := Ext ( S, S, G, mult, e, a ) : S → S → S Notation x · y for · xya := Ext - proof ( S, S, G, mult, e, a ) : Ext - prop ( S, S, G, mult, e, · ) var x : S | v : xεGa := a xv : ( inv xv ) εGa := ∧ ( a x ) : (Π p : xεG.x − = inv xp ) a := a v : x − = inv xva := eq - subs ( λz : S.zεG, a , a ) : x − εGa := a xva : mult xvea = x ∧ mult ea xv = xa := ∧ ( a ) : mult xvea = xa := ∧ ( a ) : mult ea xv = xa := a xe : [Π p : xεG. Π q : eεG. ( x · e = mult xpeq ) ∧ ( ¬ ( xεG ∧ eεG ) ⇒ x · e = e )] a := ∧ ( a ) : [Π p : xεG. Π q : eεG. ( x · e = mult xpeq )] a := a va : x · e = mult xvea a := eq - trans ( a , a ) : x · e = xa := a ex : [Π q : eεG. Π p : xεG. ( e · x = mult eqxp ) ∧ ( ¬ ( eεG ∧ xεG ) ⇒ e · x = e )] a := ∧ ( a ) : : [Π q : eεG. Π p : xεG. ( e · x = mult eqxp )] a := a a v : e · x = mult ea xv ORMALIZING GROUPS IN TYPE THEORY 47 a := eq - trans ( a , a ) : e · x = xa := ∧ ( a , a ) : x · e = x ∧ e · x = xa := a xva : mult xv ( inv xv ) a = e ∧ mult ( inv xv ) a xv = ea := ∧ ( a ) : mult xv ( inv xv ) a = ea := ∧ ( a ) : mult ( inv xv ) a xv = ea := a x ( inv xv ) : [Π p : xεG. Π q : ( inv xv ) εG. ( x · ( inv xv ) = mult xp ( inv xv ) q ) ∧ ( ¬ ( xεG ∧ ( inv xv ) ε G ) ⇒ x · ( inv xv ) = e )] a := ∧ ( a ) va : x · ( inv xv ) = mult xv ( inv xv ) a a := eq - trans ( a , a ) : x · ( inv xv ) = ea := eq - subs ( λz : S. ( x · z = e ) , a , a ) : x · x − = ea := a ( inv xv ) x : [Π q : ( inv xv ) εG. Π p : xεG. (( inv xv ) · x = mult ( inv xv ) qxp ) ∧ ( ¬ (( inv xv ) ε G ∧ xεG ) ⇒ ( inv xv ) · x = e )] a := ∧ ( a ) a v : ( inv xv ) · x = mult ( inv xv ) a xva := eq - trans ( a , a ) : ( inv xv ) · x = ea := eq - subs ( λz : S. ( z · x = e ) , a , a ) : x − · x = ea := ∧ ( a , a ) : Inverse ( S, · , e, x, x − ) var y : S | w : yεGa := a xvyw : ( mult xvyw ) ε Ga := a xy : [Π p : xεG. Π q : yεG. ( x · y = mult xpyq ) ∧ ( ¬ ( xεG ∧ yεG ) ⇒ x · y = e )] a := ∧ ( a ) vw : x · y = mult xvywa := eq - subs ( λz : S.zεG, a , a ) : ( x · y ) ε G var z : S | t : zεGa := a ywzt : ( mult ywzt ) ε Ga := a xvywa zta : mult ( mult xvyw ) a zt = mult xv ( mult ywzt ) a a := a yz : [Π q : yεG. Π r : zεG. ( y · z = mult yqzr ) ∧ ( ¬ ( yεG ∧ zεG ) ⇒ y · z = e )] a := ∧ ( a ) wt : y · z = mult ywzta := a ( mult xvyw ) z : [Π p : ( mult xvyw ) εG. Π r : zεG. [( mult xvyw ) · z = mult ( mult xvyw ) pzr ] ∧ ( ¬ (( mult xvyw ) εG ∧ zεG ) ⇒ ( mult xvyw ) · z = e )] a := ∧ ( a ) a t : ( mult xvyw ) · z = mult ( mult xvyw ) a zta := a x ( mult ywzt ) : [Π p : xεG. Π q : ( mult ywzt ) εG. [ x · ( mult ywzt )= mult xp ( mult ywzt ) q )] ∧ ( ¬ ( xεG ∧ ( mult ywzt ) εG ) ⇒ x · ( mult ywzt ) = e )] a := ∧ ( a ) va : x · ( mult ywzt ) = mult xv ( mult ywzt ) a a := eq - trans ( eq - trans ( a , a ) , a ) : ( mult xvyw ) · z = x · ( mult ywzt ) a := eq - subs ( λm : S. ( m · z = x · ( mult ywzt )) , a , a ) : ( x · y ) · z = x · ( mult ywzt ) a := eq - subs ( λm : S. (( x · y ) · z = x · m ) , a , a ) : ( x · y ) · z = x · ( y · z ) a := λy : S.λw : yεG.λz : S.λt : zεG.a : ∀ y : S [ yεG ⇒ ∀ z : S ( zεG ⇒ ( x · y ) · z = x · ( y · z ))] a := λy : S.λw : yεG.a : ∀ y : S ( yεG ⇒ ( x · y ) ε G ) a := λx : S.λv : xεG.a : Closure ( S, G, · ) a := λx : S.λv : xεG.a : Assoc ( S, G, · ) a := λx : S.λv : xεG.a : Closure ( S, G, − ) a := λx : S.λv : xεG.a : Inverse ( S, G, · , e, − ) a := λx : S.λv : xεG.a : ∀ x : S. [ xεG ⇒ ( x · e = x ∧ e · x = x )] a := ∧ ( a , a ) : Inverse - prop ( S, G, · , e, − ) a := ∧ ( a , a ) : Identity ( S, G, · , e ) a := ∧ ( a , a ) : Semi - group ( S, G, · ) a := ∧ ( a , a ) : M onoid ( S, G, · , e ) a := ∧ ( a , a ) : Group ( S, G, · , e, − )Proof of Lemma 3.14var M : ∗ s | f : M → M | u : f εP erm ( M )Notation P := λy, x : M.f x = y : M → M → ∗ p u : bij ( M, M, f ) a := ∧ ( u ) : inj ( M, M, f ) a := ∧ ( u ) : surj ( M, M, f ) var y : Ma := a y : ( ∃ x : M.f x = y ) a : ( ∃ x : M.P yx ) var x , x : M | v : P yx | w : P yx v : f x = ya := eq - sym ( w ) : y = f x a := eq - trans ( v, a ) : f x = f x a := a x x a : x = x a := λx , x : M.λv : P yx .λw : P yx .a : [ ∀ x , x : M. ( P yx ⇒ P yx ⇒ ( x = x ))] a := ∧ ( a , a ) : ( ∃ x : M.P yx ) c ( y ) := ι ( M, P y, a ) : Md ( y ) := ι - prop ( M, P y, a ) : P yc ( y ) invrs ( M, f, u ) := λy : M.c ( y ) : M → M Inverse of permutation f
Notation g := invrs ( M, f, u ) : M → M var y : Ma := d ( y ) : P yc ( y ) a : P y ( gy ) a : f ( gy ) = y ORMALIZING GROUPS IN TYPE THEORY 49 a : ( f ◦ g ) y = id M ya := λy : M.a : f ◦ g = id M var x : M Notation y := f xa := a y : f ( gy ) = ya : f ( gy ) = f xa := a ( gy ) xa : gy = xa : g ( f x ) = xa : ( g ◦ f ) x = id M xa := λx : M.a : g ◦ f = id M term . ( M, f, u ) := ∧ ( a , a ) : inverse ( M → M, ◦ , id M , f, g )Proof of Proposition 3.15 Here we use the term invrs from Lemma 3.14. var M : ∗ s | f : M → M Notation S := M → M : ∗ u : invertible ( S, ◦ , id M , f ) u : ( ∃ g : S. ( f ◦ g = id M ∧ g ◦ f = id M )) var g : S | v : ( f ◦ g = id M ∧ g ◦ f = id M ) a := ∧ ( v ) : f ◦ g = id M a := ∧ ( v ) : g ◦ f = id M var x , x : M | w : f x = f x a := eq - cong ( λh : S.hx , a ) : ( g ◦ f ) x = id M x a := eq - cong ( λh : S.hx , a ) : ( g ◦ f ) x = id M x a : g ( f x ) = x a : g ( f x ) = x a := eq - cong ( g, w ) : g ( f x ) = g ( f x ) a := eq - trans ( eq - trans ( a , a ) , a ) : x = x a := λx , x : M.λw : ( f x = f x ) .a : inj ( M, M, f ) a := ∃ ( u, a ) : inj ( M, M, f ) var y : Ma := eq - cong ( λh : S.hy, a ) : ( f ◦ g ) y = id M ya : f ( gy ) = ya := ∃ ( λx : M. ( f x = y ) , gy, a ) : ( ∃ x : M.f x = y ) a := λy : M.a : surj ( M, M, f ) a := ∧ ( a , a ) : bij ( M, M, f ) a : f εP erm ( M ) a := λu : invertible ( S, ◦ , id M , f ) .a : invertible ( S, ◦ , id M , f ) ⇒ f εP erm ( M ) u : f εP erm ( M )Notation Q := λh : S.inverse ( S, ◦ , id M , f, h ) : S → ∗ p Notation g := invrs ( M, f, u ) : Sa := term . M, f, u ) :
Qga := ∃ ( Q, g, a ) : invertible ( S, ◦ , id M , f ) a := λu : f εP erm ( M ) .a : f εP erm ( M ) ⇒ invertible ( S, ◦ , id M , f ) term . ( M, f ) := ∧ ( a , a ) : invertible ( M → M, ◦ , id M , f ) ⇔ f εP erm ( M )Proof of Theorem 3.16 Here we use the terms
Inv and
Inv - set from Example 3.9. var M : ∗ s G := Inv - set ( M → M, ◦ , id M ) : ps ( M → M ) a := term . M ) : monoid ( M → M, ◦ , id M ) − := Inv ( M → M, ◦ , id M , a ) : ( M → M ) → M → Ma := term . M → M, ◦ , id M , a ) : Group ( M → M, G, ◦ , id M , − ) var f : M → Ma := term . M, f ) : invertible ( M → M, ◦ , id M , f ) ⇔ f εP erm ( M ) a : f εG ⇔ f εP erm ( M ) a := ∧ ( a ) : f εG ⇒ f εP erm ( M ) a := ∧ ( a ) : f εP erm ( M ) ⇒ f εGa := λf : M → M.a : G ⊆ P erm ( M ) a := λf : M → M.a : P erm ( M ) ⊆ Ga := ∧ ( a , a ) : G = P erm ( M )Notation P := λZ : ps ( M → M ) .Group ( M → M, Z, ◦ , id M , − ) : ps ( ps ( M → M )) → ∗ p term . ( M ) := eq - subs ( P, a , a ) : Group ( M → M, P erm ( M ) , ◦ , id M , − )Proof of Proposition 3.18var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : eεGa := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) var x : S | v : xεGa := Gr ( S, G, · , e, − , u, x, v ) : x − εG ORMALIZING GROUPS IN TYPE THEORY 51 a := Gr ( S, G, · , e, − , u, x, v ) : x · x − = ea := Gr ( S, G, · , e, − , u, x, v ) : x − · x = ea := Gr ( S, G, · , e, − , u, ( x − ) , a ) : x − · e = x − a := Gr ( S, G, · , e, − , u, ( x − ) , a ) : e · x − = x − var y : S | w : yεGa := Gr ( S, G, · , e, − , u, y, w ) : y − εGa := Gr ( S, G, · , e, − , u, y, w ) : y − · y = ea := Gr ( S, G, · , e, − , u, y, w ) : y · e = ya := Gr ( S, G, · , e, − , u, y, w ) : e · y = ya := Gr ( S, G, · , e, − , u, x, y, v, w ) : ( x · y ) ε Ga := a ( x − ) a xvyw : x − · x · y = x − · ( x · y ) a := eq - cong ( λt : S. ( t · y ) , a ) : e · y = x − · x · ya := eq - trans ( eq - trans ( a , a ) , a ) : x − · ( x · y ) = y var z : S | r : zεGp : ( x · y = z ) a := eq - cong ( λt : S. ( x − · t ) , p ) : x − · ( x · y ) = x − · za := eq - trans ( a , a ) : y = x − · z term . . ( S, G, · , e, − , u, x, y, z, v, w, r ) := λp : ( x · y = z ) .a : ( x · y = z ⇒ y = x − · z )
1) is proven p : ( y · x = z ) a := eq - cong ( λt : S. ( t · x − ) , p ) : y · x · x − = z · x − a := eq - cong ( λt : S. ( y · t ) , a ) : y · ( x · x − ) = y · ea := a ywxvx − a : y · x · x − = y · ( x · x − ) a := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : y = z · x − term . . ( S, G, · , e, − , u, x, y, z, v, w, r ) := λp : ( y · x = z ) .a : ( y · x = z ⇒ y = z · x − )
2) is proven p : ( x · y = e ) a := term . . ( S, G, · , e, − , u, x, y, e, v, w, a ) p : y = x − · ea := eq - trans ( a , a ) : y = x − term . . ( S, G, · , e, − , u, x, y, v, w ) := λp : ( x · y = e ) .a : ( x · y = e ⇒ y = x − )
3) is proven p : ( y · x = e ) a := term . . ( S, G, · , e, − , u, x, y, e, v, w, a ) p : y = e · x − a := eq - trans ( a , a ) : y = x − term . . ( S, G, · , e, − , u, x, y, v, w ) := λp : ( y · x = e ) .a : ( y · x = e ⇒ y = x − )
4) is proven a := eq - cong ( λt : S. ( y − · t ) , a ) : y − · ( x − · ( x · y )) = y − · y a := a ( y − ) a ( x − ) a ( x · y ) a : y − · x − · ( x · y ) = y − · ( x − · ( x · y )) a := eq - trans ( eq - trans ( a , a ) , a ) : y − · x − · ( x · y ) = ea := Gr ( S, G, · , e, − , u, y − , x − , a , a ) : ( y − · x − ) ε Ga := term . . ( S, G, · , e, − , u, ( x · y ) , ( y − · x − ) , a , a ) a : y − · x − = ( x · y ) − term . . ( S, G, · , e, − , u, x, y, v, w ) := eq - sym ( a ) : ( x · y ) − = y − · x −
5) is proven a := term . . ( S, G, · , e, − , u, x − , x, a , v ) a : x = ( x − ) − term . . ( S, G, · , e, − , u, x, v ) := eq - sym ( a ) : ( x − ) − = x
6) is proven ( p : x · x = x ) a := term . . ( S, G, · , e, − , u, x, x, x, v, v, v ) p : x = x − · xa := eq - trans ( a , a ) : x = e term . . ( S, G, · , e, − , u, x, v ) := λp : ( x · x = x ) .a : ( x · x = x ⇒ x = e )
7) is proven a := Gr ( S, G, · , e, − , u, e, a ) : e · e = ea := term . . ( S, G, · , e, − , u, e, e, a , a ) a : e = e − term . . ( S, G, · , e, − , u ) := eq - sym ( a ) : e − = e
8) is proven
Proof of Proposition 4.2 var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H Ga := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεHa := ∧ ( ∧ ( v )) : Closure ( S, H, − ) a := ∧ ( v ) : Closure ( S, H, · ) var x : S | w : xεHa ( x, w ) := a xw : xεGa := a ( x, w ) : xεGa := ∧ ( Gr ( S, G, · , e, − , u, x, a ) , Gr ( S, G, · , e, − , u, x, a )) : x · e = x ∧ e · x = xa := Gr ( S, G, · , e, − , u, x, a ) : Inverse ( S, · , e, x, x − ) a := λx : S.λw : x εH.a : ∀ x : S. [ xεH ⇒ ( x · e = x ∧ e · x = x )] a := λx : S.λw : x εH.a : Inverse ( S, H, · , e, − ) a := ∧ ( a , a ) : Identity ( S, H, · , e ) a := ∧ ( a , a ) : Inverse - prop ( S, H, · , e, − ) var x : S | w : xεH | y : S | w : yεH | z : S | w : zεHa := a ( x, w ) : xεGa := a ( y, w ) : yεG ORMALIZING GROUPS IN TYPE THEORY 53 a := a ( z, w ) : zεGa := Gr ( S, G, · , e, − , u ) xa ya za : ( x · y ) · z = x · ( y · z ) a := λx : S.λw : xεH.λy : S.λw : yεH.λz : S.λw : zεH.a : Assoc ( S, H, · ) term . . ( S, G, · , e, − , u, H, v ) := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : Group ( S, H, · , e, − ) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B G | v : C G | w : C ⊆ Ba := ∧ ( ∧ ( ∧ ( v ))) : eεCa := ∧ ( ∧ ( v )) : Closure ( S, C, − ) a := ∧ ( v ) : Closure ( S, C, · ) term . . ( S, G, · , e, − , u, B, C, v , v , w ) := ∧ ( ∧ ( ∧ ( w, a ) , a ) , a ) : C B Proof of Proposition 4.3 var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := ∧ ( ∧ ( ∧ ( u ))) : Closure ( S, G, · ) a := ∧ ( ∧ ( u )) : Closure ( S, G, − ) a := Gr ( S, G, · , e, − , u ) : eεGa := λx : S.λv : xεG.v : G ⊆ G term . . ( S, G, · , e, − , u ) := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : G G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − )Notation H := { x : S | x = e } : ps ( S ) a := eq - ref l : e = ea : eεHa := Gr ( S, G, · , e, − , u ) : eεGa := Gr ( S, , G, · , e, − , u, e, a ) : e · e = ea := term . . ( S, , G, · , e, − , u ) : e − = e var x : S | v : xεHv : x = ea := eq - subs ( λz : S.zεG, v, a ) : xεGa := eq - cong ( − , v ) : x − = e − a := eq - trans ( a , a ) : x − = ea : x − εH a := λx : S.λv : xεH.a : Closure ( S, H, − ) a := λx : S.λv : xεH.a : H ⊆ G var x : S | v : xεH | y : S | w : yεHv : x = ew : y = ea := eq - cong ( λz : S. ( x · z ) , w ) : x · y = x · ea := eq - cong ( λz : S. ( z · e ) , v ) : x · e = e · ea := eq - trans ( eq - trans ( a , a ) , a ) : x · y = ea : ( x · y ) ε Ha := λx : S.λv : xεH.λy : S.λw : yεH.a : Closure ( S, H, · ) term . . ( S, G, · , e, − , u ) := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : H G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B G | w : C Ga := ∧ ( ∧ ( ∧ ( v ))) : B ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεBa := ∧ ( ∧ ( v )) : Closure ( S, B, − ) a := ∧ ( v ) : Closure ( S, B, · ) a := ∧ ( ∧ ( ∧ ( w ))) : eεCa := ∧ ( ∧ ( w )) : Closure ( S, C, − ) a := ∧ ( w ) : Closure ( S, C, · ) a := ∧ ( a , a ) : e ε ( B ∩ C ) var x : S | r : x ε ( B ∩ C ) a := ∧ ( r ) : xεBa := ∧ ( r ) : xεCa := a xa : xεGa := a xa : x − εBa := a xa : x − εCa := ∧ ( a , a ) : x − ε ( B ∩ C ) a := λx : S.λr : ( x ε ( B ∩ C )) .a : B ∩ C ⊆ Ga := λx : S.λr : ( x ε ( B ∩ C )) .a : Closure ( S, ( B ∩ C ) , − ) var x : S | r : x ε ( B ∩ C ) | y : S | r : y ε ( B ∩ C ) a := ∧ ( r ) : xεBa := ∧ ( r ) : xεC ORMALIZING GROUPS IN TYPE THEORY 55 a := ∧ ( r ) : yεBa := ∧ ( r ) : yεCa := a xa ya : ( x · y ) ε Ba := a xa ya : ( x · y ) ε Ca := ∧ ( a , a ) : ( x · y ) ε ( B ∩ C ) a := λx : S.λr : ( x ε ( B ∩ C )) .λy : S.λr : ( y ε ( B ∩ C )) .a : Closure ( S, ( B ∩ C ) , · ) term . . ( S, G, · , e, − , u, B, C, v, w ) := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : B ∩ C G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var U : ps ( ps ( S )) | v : ( ∃ X : ps ( S ) .XεU ) | w : [ ∀ X : ps ( S ) . ( XεU ⇒ X G )] var X : ps ( S ) | r : XεUa := wXr : X Ga ( X, r ) := ∧ ( ∧ ( ∧ ( a ))) : X ⊆ Ga ( X, r ) := ∧ ( ∧ ( ∧ ( a ))) : eεXa ( X, r ) := ∧ ( ∧ ( a )) : Closure ( S, X, − ) a ( X, r ) := ∧ ( a ) : Closure ( S, X, · ) var X : ps ( S ) | r : XεUa := a ( X, r ) : eεXa := λX : ps ( S ) .λr : XεU.a : eε ( ∩ U ) var x : S | r : xε ( ∩ U ) var X : ps ( S ) | r : XεUa := r Xr : xεXa := a ( X, r ) xa : xεGa := a ( X, r ) xa : x − εXa := ∃ ( v, a ) : xεGa := λX : ps ( S ) .λr : XεU.a : x − ε ( ∩ U ) a := λx : S.λr : xε ( ∩ U ) .a : ( ∩ U ) ⊆ Ga := λx : S.λr : xε ( ∩ U ) .a : Closure ( S, ∩ U, − ) var x : S | r : xε ( ∩ U ) | y : S | r : yε ( ∩ U ) var X : ps ( S ) | r : XεUa := r Xr : x ε Xa := r Xr : y ε Xa := a ( X, r ) xa ya : ( x · y ) ε Xa := λX : ps ( S ) .λr : XεU.a : ( x · y ) ε ( ∩ U ) a := λx : S.λr : xε ( ∩ U ) .λy : S.λr : yε ( ∩ U ) .a : Closure ( S, ∩ U, · ) term . . ( S, G, · , e, − , u, U, v, w ) := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : ∩ U G Proof of Proposition 4.5var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) var H : ps ( S ) | v : H Ga := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεHa := ∧ ( ∧ ( v )) : Closure ( S, H, − ) a := ∧ ( v ) : Closure ( S, H, · ) var x : S | w : xεGa := Gr ( S, G, · , e, − , u, x, w ) : x − · x = ea := eq - subs ( λz : S.zεH, a , a ) : ( x − · x ) εHa : R H xxa := λx : S.λw : xεG.a : ref l ( S, G, R H ) var x : S | v : xεG | y : S | v : yεG | w : R H xyw : ( x − · y ) εHa ( x, v ) := Gr ( S, G, · , e, − , u, x, v ) : x − εGa := term . . ( S, · , e, − , u, x − , y, a ( x, v ) , v ) : ( x − · y ) − = y − · ( x − ) − a := term . . ( S, · , e, − , u, x, v ) : ( x − ) − = xa := eq - subs ( λz : S. (( x − · y ) − = y − · z ) , a , a ) : ( x − · y ) − = y − · xa := a ( x − · y ) w : ( x − · y ) − ε Ha := eq - subs ( λz : S.zεH, a , a ) : ( y − · x ) εHa : R H yxa := λx : S.λv : xεG.λy : S.λv : yεG.λw : R H xy.a : sym ( S, G, R H ) var x : S | v : xεG | y : S | v : yεG | z : S | v : zεG | w : R H xy | w : R H yzw : ( x − · y ) εHw : ( y − · z ) εHa := a ( y − · z ) w : ( y − · z ) ε Ga := a ( x − · y ) w ( y − · z ) w : (( x − · y ) · ( y − · z )) εHa := a x − a ( x, v ) yv ( y − · z ) a : ( x − · y ) · ( y − · z ) = x − · ( y · ( y − · z )) a := a yv y − a ( y, v ) zv : ( y · y − ) · z = y · ( y − · z ) a := Gr ( S, G, · , e, − , u, y, v ) : y · y − = ea := Gr ( S, G, · , e, − , u, z, v ) : e · z = z ORMALIZING GROUPS IN TYPE THEORY 57 a := eq - cong ( λt : S. ( t · z ) , a ) : ( y · y − ) · z = e · za := eq - trans ( eq - trans ( a , a ) , a ) : y · ( y − · z ) = za := eq - subs ( λt : S. (( x − · y ) · ( y − · z ) = x − · t ) , a , a ) : ( x − · y ) · ( y − · z ) = x − · za := eq - subs ( λt : S.tεH, a , a ) : ( x − · z ) εHa : R H xza := λx : S.λv : xεG.λy : S.λv : yεG.λz : S.λv : zεG.λw : R H xy.λw : R H yz.a : trans ( S, G, R H ) term . ( S, G, · , e, − , u, H, v ) := ∧ ( ∧ ( a , a ) , a ) : equiv - rel ( S, G, R H )Proof of Proposition 4.6var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G Notation R := R H : S → S → ∗ p a := term . S, G, · , e, − , u, H, v ) : equiv - rel ( S, G, R ) a := ∧ ( ∧ ( a )) : ref l ( S, G, R ) a := ∧ ( ∧ ( a )) : sym ( S, G, R ) a := ∧ ( a ) : trans ( S, G, R ) var x, y : S | w : xεG | w : yεGr : Rxya := a xw yw r : Ryx var z : S | r : z ε ( Rx ∩ G ) a := ∧ ( r ) : zεRxa := ∧ ( r ) : zεGa : Rxza := a yw xw za a a : Ryza : zεRya := ∧ ( a , a ) : z ε ( Ry ∩ G ) a ( x, y, w , w , r ) := λz : S.λr : zε ( Rx ∩ G ) .a : Rx ∩ G ⊆ Ry ∩ Ga := ∧ ( a ( x, y, w , w , r ) , a ( y, x, w , w , a )) : Rx ∩ G = Ry ∩ Ga := λr : Rxy.a : ( Rxy ⇒ ( Rx ∩ G = Ry ∩ G )) r : Rx ∩ G = Ry ∩ Ga := a yw : Ryya : yεRya := ∧ ( a , w ) : yε ( Ry ∩ G ) a := ∧ ( r ) ya : yε ( Rx ∩ G ) a := ∧ ( a ) : yεRx a : Rxya := λr : ( Rx ∩ G = Ry ∩ G ) .a : ( Rx ∩ G = Ry ∩ G ) ⇒ Rxy term . ( S, G, · , e, − , u, H, v, x, y, w , w ) := ∧ ( a , a ) : R H xy ⇔ ( R H x ∩ G = R H y ∩ G )Proof of Lemma 4.8var S : ∗ s | · : S → S → S | B, C : ps ( S ) var x : S | u : xεM t ( S, · , B, C ) u : [ ∃ c : S. ( cεC ∧ x ε ( B · c ))] var c : S | v : cεC ∧ x ε ( B · c ) a := ∧ ( v ) : cεCa := ∧ ( v ) : x ε ( B · c ) a : ( ∃ b : S. ( bεB ∧ x = b · c )) var b : S | w : bεB ∧ x = b · ca := ∧ ( w ) : bεBa := ∧ ( w ) : x = b · ca := ∧ ( a , a ) : cεC ∧ x = b · ca := ∃ ( λt : S. ( tεC ∧ x = b · t ) , c, a ) : x ε ( b · C ) a := ∧ ( a , a ) : bεB ∧ x ε ( b · C ) a := ∃ ( λt : S. ( tεB ∧ x ε ( t · C )) , b, a ) : x ε M t ( S, · , B, C ) a := ∃ ( a , a ) : x ε M t ( S, · , B, C ) a := ∃ ( u, a ) : x ε M t ( S, · , B, C ) a := λx : S.λu : x ε M t ( S, · , B, C ) .a : M t ( S, · , B, C ) ⊆ M t ( S, · , B, C ) var x : S | u : xεM t ( S, · , B, C ) u : [ ∃ b : S. ( bεB ∧ x ε ( b · C ))] var b : S | v : bεB ∧ x ε ( b · C ) a := ∧ ( v ) : bεBa := ∧ ( v ) : x ε ( b · C ) a : ( ∃ c : S. ( cεC ∧ x = b · c )) var c : S | w : cεC ∧ x = b · ca := ∧ ( w ) : cεCa := ∧ ( w ) : x = b · ca := ∧ ( a , a ) : bεB ∧ x = b · ca := ∃ ( λt : S. ( tεB ∧ x = t · c ) , b, a ) : x ε ( B · c ) a := ∧ ( a , a ) : cεC ∧ x ε ( B · c ) a := ∃ ( λt : S. ( tεC ∧ x ε ( B · t )) , c, a ) : x ε M t ( S, · , B, C ) ORMALIZING GROUPS IN TYPE THEORY 59 a := ∃ ( a , a ) : x ε M t ( S, · , B, C ) a := ∃ ( u, a ) : x ε M t ( S, · , B, C ) a := λx : S.λu : x ε M t ( S, · , B, C ) .a : M t ( S, · , B, C ) ⊆ M t ( S, · , B, C ) term . ( S, · , B, C ) := ∧ ( a , a ) : M t ( S, · , B, C ) = M t ( S, · , B, C )Proof of Lemma 4.9var S : ∗ s var − : S → S | B : ps ( S ) | b : S | u : bεBa := eq - ref l : b − = b − a := ∧ ( u, a ) : bεB ∧ b − = b − term . . ( S, − , B, b, u ) := ∃ ( λt : S. ( tεB ∧ b − = t − ) , b, a ) : b − εB −
1) is proven var · : S → S → S | B : ps ( S ) | g, b : S | u : bεBa := eq - ref l : g · b = g · ba := eq - ref l : b · g = b · ga := ∧ ( u, a ) : bεB ∧ g · b = g · ba := ∧ ( u, a ) : bεB ∧ b · g = b · g term . . ( S, · , B, g, b, u ) := ∃ ( λt : S. ( tεB ∧ g · b = g · t ) , b, a ) : ( g · b ) ε ( g · B )
2) is proven term . . ( S, · , B, g, b, u ) := ∃ ( λt : S. ( tεB ∧ b · g = t · g ) , b, a ) : ( b · g ) ε ( B · g )
3) is proven var · : S → S → S | B, C : ps ( S ) | b, c : S | u : bεB | v : cεCa := term . . ( S, · , B, c, b, u ) : ( b · c ) ε ( B · c ) a := ∧ ( v, a ) : cεC ∧ ( b · c ) ε ( B · c ) term . . ( S, · , B, C, b, c, u, v ) := ∃ ( λt : S. ( tεC ∧ ( b · c ) ε ( B · t )) , c, a ) : ( b · c ) ε ( B · C )
4) is proven
Proof of Proposition 4.10var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) var H : ps ( S ) | v : H G | x : S | w : xεG Notation R := R H : S → S → ∗ p a := ∧ ∧ ( ∧ ( v ))) : H ⊆ Ga := Gr ( S, G, · , e, − , u, x, w ) : x − εGa := Gr ( S, G, · , e, − , u, x, w ) : x · x − = e var z : S | r : z ε ( x · H ) r : ( ∃ h : S. ( hεH ∧ z = x · h )) var h : S | r : hεH ∧ z = x · ha := ∧ ( r ) : hεH a := ∧ ( r ) : z = x · ha := eq - sym ( a ) : x · h = za := a ha : hεGa := Gr ( S, G, · , e, − , u, x, h, w, a ) : ( x · h ) ε Ga := eq - subs ( λt : S.tεG, a , a ) : zεGa := term . . ( S, G, · , e, − , u, x, h, z, w, a , a ) a : h = x − · za := eq - subs ( λt : S.tεH, a , a ) : ( x − · z ) ε Ha : Rxza : zεRxa := ∧ ( a , a ) : z ε ( Rx ∩ G ) a := ∃ ( r , a ) : z ε ( Rx ∩ G ) a := λz : S.λr : ( z ε ( x · H )) .a : ( x · H ) ⊆ Rx ∩ G var z : S | r : z ε ( Rx ∩ G ) a := ∧ ( r ) : zεRxa := ∧ ( r ) : zεGa : Rxza : ( x − · z ) ε Ha := a xw ( x − ) a za : ( x · x − ) · z = x · ( x − · z ) a := eq - cong ( λt : S. ( t · z ) , a ) : ( x · x − ) · z = e · za := Gr ( S, G, · , e, − , u, z, a ) : e · z = za := eq - trans ( eq - trans ( a , a ) , a ) : x · ( x − · z ) = za := term . . ( S, · , H, x, ( x − · z ) , a ) : ( x · ( x − · z )) ε ( x · H ) a := eq - subs ( λt : S. ( t ε ( x · H )) , a , a ) : z ε ( x · H ) a := λz : S.λr : zε ( Rx ∩ G ) .a : Rx ∩ G ⊆ ( x · H ) term . . ( S, G, · , e, − , u, H, v, x, w ) := ∧ ( a , a ) : x · H = R H x ∩ G
1) is proven var y : S | r : yεGa := term . S, G, · , e, − , u, H, v, x, y, w, r ) : Rxy ⇔ ( Rx ∩ G = Ry ∩ G ) a := term . . ( S, G, · , e, − , u, H, v, x, w ) : x · H = Rx ∩ Ga := term . . ( S, G, · , e, − , u, H, v, y, r ) : y · H = Ry ∩ Ga := eq - subs ( λZ : ps ( S ) . ( Rxy ⇔ Z = Ry ∩ G ) , a , a ) : Rxy ⇔ x · H = Ry ∩ Ga := eq - subs ( λZ : ps ( S ) . ( Rxy ⇔ x · H = Z ) , a , a ) : Rxy ⇔ x · H = y · H term . . ( S, G, · , e, − , u, H, v, x, y, w, r ) := eq - sym ( a ): x · H = y · H ⇔ R H xy
2) is proven
ORMALIZING GROUPS IN TYPE THEORY 61
Proof of Lemma 4.11
1) - 3) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B : ps ( S ) | v : B ⊆ G var x : S | w : x ε ( e · B ) w : ( ∃ b : S. ( bεB ∧ x = e · b )) var b : S | r : bεB ∧ x = e · ba := ∧ ( r ) : bεBa := ∧ ( r ) : x = e · ba := vba : bεGa := Gr ( S, G, · , e, − , u, b, a ) : e · b = ba := eq - trans ( a , a ) : x = ba := eq - subs ( λt : S.tεB, a , a ) : xεBa := ∃ ( w, a ) : xεBa := λx : S.λw : x ε ( e · B ) .a : ( e · B ) ⊆ B var x : S | w : x ε ( B · e ) w : ( ∃ b : S. ( bεB ∧ x = b · e )) var b : S | r : bεB ∧ x = b · ea := ∧ ( r ) : bεBa := ∧ ( r ) : x = b · ea := vba : bεGa := Gr ( S, G, · , e, − , u, b, a ) : b · e = ba := eq - trans ( a , a ) : x = ba := eq - subs ( λt : S.tεB, a , a ) : xεBa := ∃ ( w, a ) : xεBa := λx : S.λw : x ε ( B · e ) .a : ( B · e ) ⊆ B var x : S | w : x ε Ba := Gr ( S, G, · , e, − , u, x, w ) : x · e = xa := Gr ( S, G, · , e, − , u, x, w ) : e · x = xa := term . . ( S, · , B, e, x, w ) : ( e · x ) ε ( e · B ) a := term . . ( S, · , B, e, x, w ) : ( x · e ) ε ( B · e ) a := eq - subs ( λt : S. ( t ε ( e · B )) , a , a ) : x ε ( e · B ) a := eq - subs ( λt : S. ( t ε ( B · e )) , a , a ) : x ε ( B · e ) a := λx : S.λw : xεB.a : B ⊆ ( e · B ) a := λx : S.λw : xεB.a : B ⊆ ( B · e ) term . . ( S, G, · , e, − , u, B, v ) := ∧ ( a , a ) : e · B = B
1) is proven term . . ( S, G, · , e, − , u, B, v ) := ∧ ( a , a ) : B · e = B
2) is proven var x : S | w : x ε B − w : ( ∃ b : S. ( bεB ∧ x = b − )) var b : S | r : bεB ∧ x = b − a := ∧ ( r ) : bεBa := ∧ ( r ) : x = b − a := vba : bεGa := Gr ( S, G, · , e, − , u, b, a ) : b − εGa := eq - subs ( λt : S.tεG, a , a ) : xεGa := ∃ ( w, a ) : xεG term . . ( S, G, · , e, − , u, B, v ) := λx : S.λw : xεB − .a : B − ⊆ G
3) is proven
4) - 7) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B : ps ( S ) | v : B ⊆ G | g : S | w : gεG var x : S | r : x ε ( g · B ) r : ( ∃ b : S. ( bεB ∧ x = g · b )) var b : S | r : bεB ∧ x = g · ba := ∧ ( r ) : bεBa := ∧ ( r ) : x = g · ba := vba : bεGa := Gr ( S, G, · , e, − , u, g, b, w, a ) : ( g · b ) ε Ga := eq - subs ( λt : S.tεG, a , a ) : xεGa := ∃ ( r , a ) : xεG term . . ( S, G, · , e, − , u, B, v, g, w ) := λx : S.λr : x ε ( g · B ) .a : ( g · B ) ⊆ G
4) is proven var x : S | r : x ε ( B · g ) r : ( ∃ b : S. ( bεB ∧ x = b · g )) var b : S | r : bεB ∧ x = b · ga := ∧ ( r ) : bεBa := ∧ ( r ) : x = b · ga := vba : bεGa := Gr ( S, G, · , e, − , u, b, g, a , w ) : ( b · g ) ε Ga := eq - subs ( λt : S.tεG, a , a ) : xεGa := ∃ ( r , a ) : xεG ORMALIZING GROUPS IN TYPE THEORY 63 term . . ( S, G, · , e, − , u, B, v, g, w ) := λx : S.λr : x ε ( B · g ) .a : ( B · g ) ⊆ G
5) is proven var c, d : S | r : cεG | r : dεGa ( c, d, r , r ) := term . . ( S, G, · , e, − , u, c, d, r , r ) : ( c · d ) − = d − · c − var r : h = c · d | r : x = h − a := eq - cong ( − , r ) : h − = ( c · d ) − a ( c, d, h, x, r , r , r , r ) := eq - trans ( eq - trans ( r , a ) , a ( c, d, r , r )) : x = d − · c − var x : S | r : x ε ( g · B ) − r : ( ∃ h : S. ( h ε ( g · B ) ∧ x = h − ) var h : S | r : h ε ( g · B ) ∧ x = h − a := ∧ ( r ) : h ε ( g · B ) a := ∧ ( r ) : x = h − a : ( ∃ b : S. ( bεB ∧ h = g · b )) var b : S | r : bεB ∧ h = g · ba := ∧ ( r ) : bεBa := ∧ ( r ) : h = g · ba := vba : bεGa := a ( g, b, h, x, w, a , a , a ) : x = b − · g − a := term . . ( S, − , B, b, a ) : b − ε B − a := term . . ( S, · , B − , g − , b − , a ) : ( b − · g − ) ε ( B − · g − ) a := eq - subs ( λt : S. ( t ε ( B − · g − )) , a , a ) : x ε ( B − · g − ) a := ∃ ( a , a ) : x ε ( B − · g − ) a := ∃ ( r , a ) : x ε ( B − · g − ) a := λx : S.λr : x ε ( g · B ) − .a : ( g · B ) − ⊆ ( B − · g − ) var x : S | r : x ε ( B · g ) − r : [ ∃ h : S. ( hε ( B · g ) ∧ x = h − )] var h : S | r : hε ( B · g ) ∧ x = h − a := ∧ ( r ) : hε ( B · g ) a := ∧ ( r ) : x = h − a : ( ∃ b : S. ( bεB ∧ h = b · g )) var b : S | r : bεB ∧ h = b · ga := ∧ ( r ) : bεBa := ∧ ( r ) : h = b · ga := vba : bεGa := a ( b, g, h, x, a , w, a , a ) : x = g − · b − a := term . . ( S, − , B, b, a ) : b − ε B −
14 F. KACHAPOVA a := term . . ( S, · , B − , g − , b − , a ) : ( g − · b − ) ε ( g − · B − ) a := eq - subs ( λt : S. ( t ε ( g − · B − )) , a , a ) : x ε ( g − · B − ) a := ∃ ( a , a ) : x ε ( g − · B − ) a := ∃ ( r , a ) : x ε ( g − · B − ) a := λx : S.λr : x ε ( B · g ) − .a : ( B · g ) − ⊆ ( g − · B − ) var x : S | r : x ε ( B − · g − ) r : ( ∃ h : S. ( hεB − ∧ x = h · g − )) var h : S | r : hεB − ∧ x = h · g − a := ∧ ( r ) : hεB − a := ∧ ( r ) : x = h · g − a : ( ∃ b : S. ( bεB ∧ h = b − )) var b : S | r : bεB ∧ h = b − a := ∧ ( r ) : bεBa := ∧ ( r ) : h = b − a := vba : bεGa := a ( g, b, w, a ) : ( g · b ) − = b − · g − a := eq - cong ( λt : S. ( t · g − ) , a ) : h · g − = b − · g − a := eq - trans ( eq - trans ( a , a ) , a ) : x = ( g · b ) − a := term . . ( S, · , B, g, b, a ) : ( g · b ) ε ( g · B ) a := term . . ( S, − , ( g · B ) , ( g · b ) , a ) : ( g · b ) − ε ( g · B ) − a := eq - subs ( λt : S. ( t ε ( g · B ) − ) , a , a ) : x ε ( g · B ) − a := ∃ ( a , a ) : x ε ( g · B ) − ) a := ∃ ( r , a ) : x ε ( g · B ) − ) a := λx : S.λr : ( x ε ( B − · g − )) .a : ( B − · g − ) ⊆ ( g · B ) − term . . ( S, G, · , e, − , u, B, v, g, w ) := ∧ ( a , a ) : ( g · B ) − = B − · g −
6) is proven var x : S | r : x ε ( g − · B − ) r : ( ∃ h : S. ( hεB − ∧ x = g − · h )) var h : S | r : hεB − ∧ x = g − · ha := ∧ ( r ) : hεB − a := ∧ ( r ) : x = g − · ha : ( ∃ b : S. ( bεB ∧ h = b − )) var b : S | r : bεB ∧ h = b − a := ∧ ( r ) : bεBa := ∧ ( r ) : h = b − a := vba : bεG ORMALIZING GROUPS IN TYPE THEORY 65 a := a ( b, g, a , w ) : ( b · g ) − = g − · b − a := eq - cong ( λt : S. ( g − · t ) , a ) : g − · h = g − · b − a := eq - trans ( eq - trans ( a , a ) , a ) : x = ( b · g ) − a := term . . ( S, · , B, g, b, a ) : ( b · g ) ε ( B · g ) a := term . . ( S, − , ( B · g ) , ( b · g ) , a ) : ( b · g ) − ε ( B · g ) − a := eq - subs ( λt : S. ( t ε ( B · g ) − ) , a , a ) : x ε ( B · g ) − a := ∃ ( a , a ) : x ε ( B · g ) − ) a := ∃ ( r , a ) : x ε ( B · g ) − ) a := λx : S.λr : ( x ε ( g − · B − )) .a : ( g − · B − ) ⊆ ( B · g ) − term . . ( S, G, · , e, − , u, B, v, g, w ) := ∧ ( a , a ) : ( B · g ) − = g − · B −
7) is proven
8) and 9) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B ⊆ G | w : C ⊆ G var x : S | r : x ε ( B · C ) r : [ ∃ c : S. ( cεC ∧ x ε ( B · c ))] var c : S | r : cεC ∧ x ε ( B · c )) a := ∧ ( r ) : cεCa := ∧ ( r ) : x ε ( B · c ) a := wca : cεGa := term . . ( S, G, · , e, − , u, B, v, c, a ) : ( B · c ) ⊆ Ga := a xa : xεGa := ∃ ( r , a ) : xεG term . . ( S, G, · , e, − , u, B, C, v, w ) := λx : S.λr : x ε ( B · C ) .a : ( B · C ) ⊆ G
8) is proven var x : S | r : x ε ( B · C ) − r : [ ∃ h : S. ( h ε ( B · C ) ∧ x = h − )] var h : S | r : h ε ( B · C ) ∧ x = h − a := ∧ ( r ) : h ε ( B · C ) a := ∧ ( r ) : x = h − a : [ ∃ c : S. ( cεC ∧ h ε ( B · c ))] var c : S | r : cεC ∧ h ε ( B · c ) a := ∧ ( r ) : cεCa := ∧ ( r ) : h ε ( B · c ) a := wca : cεGa := term . . ( S, − , ( B · c ) , h, a ) : h − ε ( B · c ) −
16 F. KACHAPOVA a := eq - subs ( λt : S. ( t ε ( B · c ) − ) , a , a ) : x ε ( B · c ) − a := term . . ( S, G, · , e, − , u, B, v, c, a ) : ( B · c ) − = c − · B − a := ∧ ( a ) a : x ε ( c − · B − ) a := term . . ( S, − , C, c, a ) : c − εC − a := ∧ ( a , a ) : c − εC − ∧ x ε ( c − · B − ) a := ∃ ( λt : S. ( tεC − ∧ x ε ( t · B − )) , c − , a ) : x ε ( C − · B − ) a := ∃ ( a , a ) : x ε ( C − · B − ) a := ∃ ( r , a ) : x ε ( C − · B − ) a := λx : S.λr : x ε ( B · C ) − .a : ( B · C ) − ⊆ C − · B − var x : S | r : x ε C − · B − r : [ ∃ h : S. ( h ε B − ∧ x ε ( C − · h ))] var h : S | r : h ε B − ∧ x ε ( C − · h ) a := ∧ ( r ) : h ε B − a := ∧ ( r ) : x ε ( C − · h ) a : ( ∃ b : S. ( bεB ∧ h = b − )) var b : S | r : bεB ∧ h = b − ) a := ∧ ( r ) : bεBa := ∧ ( r ) : h = b − a := vba : bεGa := eq - cong ( λt : S. ( C − · t ) , a ) : C − · h = C − · b − a := ∧ ( a ) xa : x ε ( C − · b − ) a := term . . ( S, G, · , e, − , u, C, w, b, a ) : ( b · C ) − = C − · b − a := ∧ ( a ) xa : x ε ( b · C ) − a : [ ∃ y : S. ( y ε ( b · C ) ∧ x = y − )] var y : S | r : y ε ( b · C ) ∧ x = y − a := ∧ ( r ) : y ε ( b · C ) a := ∧ ( r ) : x = y − a := ∧ ( a , a ) : bεB ∧ y ε ( b · C ) a := ∃ ( λt : S. ( tεB ∧ y ε ( t · C )) , b, a ) : y ε ( B · C ) a := term . . ( S, − , ( B · C ) , y, a ) : y − ε ( B · C ) − a := eq - subs ( λt : S. ( t ε ( B · C ) − ) , a , a ) : x ε ( B · C ) − a := ∃ ( a , a ) : x ε ( B · C ) − a := ∃ ( a , a ) : x ε ( B · C ) − a := ∃ ( r , a ) : x ε ( B · C ) − a := λx : S.λr : x ε ( C − · B − ) .a : ( C − · B − ) ⊆ ( B · C ) − term . . ( S, G, · , e, − , u, B, C, v, w ) := ∧ ( a , a ) : ( B · C ) − = C − · B −
9) is proven
Proof of Proposition 4.12
1) - 3) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) var B : ps ( S ) | v : B ⊆ G | g, h : S | w : gεG | w : hεG var x : S | r : x ε (( B · g ) · h ) r : [ ∃ c : S. ( c ε ( B · g ) ∧ x = c · h )] var c : S | r : c ε ( B · g ) ∧ x = c · ha := ∧ ( r ) : c ε ( B · g ) a := ∧ ( r ) : x = c · ha : [ ∃ b : S. ( bεB ∧ c = b · g )] var b : S | r : bεB ∧ c = b · ga := ∧ ( r ) : bεBa := ∧ ( r ) : c = b · ga := vba : bεGa := eq - cong ( λt : S. ( t · h ) , a ) : c · h = ( b · g ) · ha := a ba gw hw : ( b · g ) · h = b · ( g · h ) a := eq - trans ( eq - trans ( a , a ) , a ) : x = b · ( g · h ) a := ∧ ( a , a ) : bεB ∧ x = b · ( g · h ) a := ∃ ( λt : S. ( tεB ∧ x = t · ( g · h )) , b, a ) : x ε ( B · ( g · h )) a := ∃ ( a , a ) : x ε ( B · ( g · h )) a := ∃ ( r , a ) : x ε ( B · ( g · h )) a := λx : S.λr : ( x ε (( B · g ) · h )) .a : (( B · g ) · h ) ⊆ ( B · ( g · h )) var x : S | r : x ε ( B · ( g · h )) r : [ ∃ b : S. ( bεB ∧ x = b · ( g · h ))] var b : S | r : bεB ∧ x = b · ( g · h ) a := ∧ ( r ) : bεBa := ∧ ( r ) : x = b · ( g · h ) a := vba : bεGa := a ba gw hw : ( b · g ) · h = b · ( g · h ) a := eq - trans ( a , a ) : x = ( b · g ) · ha := term . . ( S, · , B, g, b, a ) : ( b · g ) ε ( B · g ) a := ∧ ( a , a ) : ( b · g ) ε ( B · g ) ∧ x = ( b · g ) · h a := ∃ ( λt : S. ( t ε ( B · g ) ∧ x = t · h ) , ( b · g ) , a ) : x ε (( B · g ) · h ) a := ∃ ( r , a ) : x ε (( B · g ) · h ) a := λx : S.λr : ( x ε ( B · ( g · h ))) .a : ( B · ( g · h )) ⊆ (( B · g ) · h ) term . . ( S, G, · , e, − , u, B, v, g, h, w , w ) := ∧ ( a , a ) : ( B · g ) · h = B · ( g · h )
1) is proven var x : S | r : x ε (( g · B ) · h ) r : [ ∃ c : S. ( c ε ( g · B ) ∧ x = c · h )] var c : S | r : c ε ( g · B ) ∧ x = c · ha := ∧ ( r ) : c ε ( g · B ) a := ∧ ( r ) : x = c · ha : [ ∃ b : S. ( bεB ∧ c = g · b )] var b : S | r : bεB ∧ c = g · ba := ∧ ( r ) : bεBa := ∧ ( r ) : c = g · ba := vba : bεGa := eq - cong ( λt : S. ( t · h ) , a ) : c · h = ( g · b ) · ha := a gw ba hw : ( g · b ) · h = g · ( b · h ) a := eq - trans ( eq - trans ( a , a ) , a ) : x = g · ( b · h ) a := term . . ( S, · , B, h, b, a ) : ( b · h ) ε ( B · h ) a := ∧ ( a , a ) : ( b · h ) ε ( B · h ) ∧ x = g · ( b · h ) a := ∃ ( λt : S. ( t ε ( B · h ) ∧ x = g · t ) , ( b · h ) , a ) : x ε ( g · ( B · h )) a := ∃ ( a , a ) : x ε ( g · ( B · h )) a := ∃ ( r , a ) : x ε ( g · ( B · h )) a := λx : S.λr : ( x ε (( g · B ) · h )) .a : (( g · B ) · h ) ⊆ ( g · ( B · h )) var x : S | r : x ε ( g · ( B · h )) r : [ ∃ c : S. ( c ε ( B · h ) ∧ x = g · c )] var c : S | r : c ε ( B · h ) ∧ x = g · ca := ∧ ( r ) : c ε ( B · h ) a := ∧ ( r ) : x = g · ca : [ ∃ b : S. ( bεB ∧ c = b · h )] var b : S | r : bεB ∧ c = b · ha := ∧ ( r ) : bεBa := ∧ ( r ) : c = b · ha := vba : bεGa := eq - cong ( λt : S. ( g · t ) , a ) : g · c = g · ( b · h ) a := a gw ba hw : ( g · b ) · h = g · ( b · h ) ORMALIZING GROUPS IN TYPE THEORY 69 a := eq - trans ( eq - trans ( a , a ) , a ) : x = ( g · b ) · ha := term . . ( S, · , B, g, b, a ) : ( g · b ) ε ( g · B ) a := ∧ ( a , a ) : ( g · b ) ε ( g · B ) ∧ x = ( g · b ) · ha := ∃ ( λt : S. ( t ε ( g · B ) ∧ x = t · h ) , ( g · b ) , a ) : x ε (( g · B ) · h ) a := ∃ ( a , a ) : x ε (( g · B ) · h ) a := ∃ ( r , a ) : x ε (( g · B ) · h ) a := λx : S.λr : ( x ε ( g · ( B · h ))) .a : ( g · ( B · h )) ⊆ (( g · B ) · h ) term . . ( S, G, · , e, − , u, B, v, g, h, w , w ) := ∧ ( a , a ) : ( g · B ) · h = g · ( B · h )
2) is proven var x : S | r : x ε (( g · h ) · B ) r : [ ∃ b : S. ( b εB ∧ x = ( g · h ) · b )] var b : S | r : b εB ∧ x = ( g · h ) · ba := ∧ ( r ) : b εBa := ∧ ( r ) : x = ( g · h ) · ba := vba : bεGa := a gw hw ba : ( g · h ) · b = g · ( h · b ) a := eq - trans ( a , a ) : x = g · ( h · b ) a := term . . ( S, · , B, h, b, a ) : ( h · b ) ε ( h · B ) a := ∧ ( a , a ) : ( h · b ) ε ( h · B ) ∧ x = g · ( h · b ) a := ∃ ( λt : S. ( t ε ( h · B ) ∧ x = g · t ) , ( h · b ) , a ) : x ε ( g · ( h · B )) a := ∃ ( r , a ) : x ε ( g · ( h · B )) a := λx : S.λr : ( x ε ( g · h ) · B )) .a : (( g · h ) · B ) ⊆ ( g · ( h · B )) var x : S | r : x ε ( g · ( h · B )) r : [ ∃ c : S. ( c ε ( h · B ) ∧ x = g · c )] var c : S | r : c ε ( h · B ) ∧ x = g · ca := ∧ ( r ) : c ε ( h · B ) a := ∧ ( r ) : x = g · ca : ( ∃ b : S. ( bεB ∧ c = h · b )) var b : S | r : bεB ∧ c = h · ba := ∧ ( r ) : bεBa := ∧ ( r ) : c = h · ba := vba : bεGa := eq - cong ( λt : S. ( g · t ) , a ) : g · c = g · ( h · b ) a := a gw hw ba : ( g · h ) · b = g · ( h · b ) a := eq - trans ( eq - trans ( a , a ) , a ) : x = ( g · h ) · ba := ∧ ( a , a ) : bεB ∧ x = ( g · h ) · b a := ∃ ( λt : S. ( tεB ∧ x = ( g · h ) · t ) , b, a ) : x ε (( g · h ) · B ) a := ∃ ( a , a ) : x ε (( g · h ) · B ) a := ∃ ( r , a ) : x ε (( g · h ) · B ) a := λx : S.λr : x ε ( g · ( h · B )) .a : ( g · ( h · B )) ⊆ (( g · h ) · B ) term . . ( S, G, · , e, − , u, B, v, g, h, w , w ) := ∧ ( a , a ) : ( g · h ) · B = g · ( h · B )
3) is proven
4) - 6) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C : ps ( S ) | v : B ⊆ G | v : C ⊆ G | g : S | w : gεG var x : S | r : x ε (( B · C ) · g ) r : [ ∃ f : S. ( f ε ( B · C ) ∧ x = f · g )] var f : S | r : f ε ( B · C ) ∧ x = f · ga := ∧ ( r ) : f ε ( B · C ) a := ∧ ( r ) : x = f · ga : ( ∃ c : S. ( cεC ∧ f ε ( B · c )) var c : S | r : cεC ∧ f ε ( B · c ) a := ∧ ( r ) : cεCa := ∧ ( r ) : f ε ( B · c ) a := v ca : cεGa := ∧ ( a , a ) : f ε ( B · c ) ∧ x = f · ga := ∃ ( λt : S. ( t ε ( B · c ) ∧ x = t · g ) , f, a ) : x ε (( B · c ) · g ) a := term . . ( S, G, · , e, − , u, B, v , c, g, a , w ) : ( B · c ) · g = B · ( c · g ) a := ∧ ( a ) xa : x ε ( B · ( c · g )) a := term . . ( S, · , C, g, c, a ) : ( c · g ) ε ( C · g ) a := ∧ ( a , a ) : ( c · g ) ε ( C · g ) ∧ x ε ( B · ( c · g )) a := ∃ ( λt : S. ( t ε ( C · g ) ∧ x ε ( B · t )) , ( c · g ) , a ) : x ε ( B · ( C · g )) a := ∃ ( a , a ) : x ε ( B · ( C · g )) a := ∃ ( r , a ) : x ε ( B · ( C · g )) a := λx : S.λr : ( x ε (( B · C ) · g )) .a : (( B · C ) · g ) ⊆ ( B · ( C · g )) var x : S | r : x ε ( B · ( C · g )) r : [ ∃ b : S. ( bεB ∧ x ε ( b · ( C · g )))] var b : S | r : bεB ∧ x ε ( b · ( C · g )) a := ∧ ( r ) : bεBa := ∧ ( r ) : x ε ( b · ( C · g )) a := v ba : bεG ORMALIZING GROUPS IN TYPE THEORY 71 a := term . . ( S, G, · , e, − , u, C, v , b, g, a , w ) : ( b · C ) · g = b · ( C · g ) a := ∧ ( a ) xa : x ε (( b · C ) · g ) a : [ ∃ f : S. ( f ε ( b · C ) ∧ x = f · g )] var f : S | r : f ε ( b · C ) ∧ x = f · ga := ∧ ( r ) : f ε ( b · C ) a := ∧ ( r ) : x = f · ga := ∧ ( a , a ) : bεB ∧ f ε ( b · C ) a := ∃ ( λt : S. ( tεB ∧ f ε ( t · C )) , b, a ) : f ε ( B · C ) a := ∧ ( a , a ) : f ε ( B · C ) ∧ x = f · ga := ∃ ( λt : S. ( t ε ( B · C ) ∧ x = t · g ) , f, a ) : x ε (( B · C ) · g ) a := ∃ ( a , a ) : x ε (( B · C ) · g ) a := ∃ ( r , a ) : x ε (( B · C ) · g ) a := λx : S.λr : ( x ε ( B · ( C · g ))) .a : ( B · ( C · g )) ⊆ (( B · C ) · g ) term . . ( S, G, · , e, − , u, B, C, v , v , g, w ) := ∧ ( a , a ) : ( B · C ) · g = B · ( C · g )
4) is proven var x : S | r : x ε (( B · g ) · C ) r : [ ∃ c : S. ( cεC ∧ x ε (( B · g ) · c ))] var c : S | r : cεC ∧ x ε (( B · g ) · c ) a := ∧ ( r ) : cεCa := ∧ ( r ) : x ε (( B · g ) · c ) a := v ca : cεGa := term . . ( S, G, · , e, − , u, B, v , g, c, w, a ) : ( B · g ) · c = B · ( g · c ) a := term . . ( S, · , C, g, c, a ) : ( g · c ) ε ( g · C ) a := ∧ ( a ) xa : x ε ( B · ( g · c )) a := ∧ ( a , a ) : ( g · c ) ε ( g · C ) ∧ x ε ( B · ( g · c )) a := ∃ ( λt : S. ( t ε ( g · C ) ∧ x ε ( B · t )) , ( g · c ) , a ) : x ε ( B · ( g · C )) a := ∃ ( r , a ) : x ε ( B · ( g · C )) a := λx : S.λr : ( x ε (( B · g ) · C )) .a : (( B · g ) · C ) ⊆ ( B · ( g · C )) var x : S | r : x ε ( B · ( g · C )) r : [ ∃ b : S. ( bεB ∧ x ε ( b · ( g · C ))] var b : S | r : bεB ∧ x ε ( b · ( g · C ) a := ∧ ( r ) : bεBa := ∧ ( r ) : x ε ( b · ( g · C ) a := v ba : bεGa := term . . ( S, G, · , e, − , u, C, v , b, g, a , w ) : ( b · g ) · C = b · ( g · C ) a := ∧ ( a ) xa : x ε (( b · g ) · C ) a := term . . ( S, · , B, g, b, a ) : ( b · g ) ε ( B · g ) a := ∧ ( a , a ) : ( b · g ) ε ( B · g ) ∧ x ε (( b · g ) · C ) a := ∃ ( λt : S. ( tε ( B · g ) ∧ x ε ( t · C )) , ( b · g ) , a ) : x ε (( B · g ) · C ) a := ∃ ( r , a ) : x ε (( B · g ) · C ) a := λx : S.λr : ( x ε ( B · ( g · C ))) .a : ( B · ( g · C )) ⊆ (( B · g ) · C ) term . . ( S, G, · , e, − , u, B, C, v , v , g, w ) := ∧ ( a , a ) : ( B · g ) · C = B · ( g · C )
5) is proven var x : S | r : x ε (( g · B ) · C ) r : [ ∃ c : S. ( cεC ∧ x ε (( g · B ) · c ))] var c : S | r : cεC ∧ x ε (( g · B ) · c ) a := ∧ ( r ) : cεCa := ∧ ( r ) : x ε (( g · B ) · c ) a := v ca : cεGa := term . . ( S, G, · , e, − , u, B, v , g, c, w, a ) : ( g · B ) · c = g · ( B · c ) a := ∧ ( a ) xa : x ε ( g · ( B · c )) a : [ ∃ f : S. ( f ε ( B · c ) ∧ x = g · f )] var f : S | r : f ε ( B · c ) ∧ x = g · fa := ∧ ( r ) : f ε ( B · c ) a := ∧ ( r ) : x = g · fa := ∧ ( a , a ) : cεC ∧ f ε ( B · c ) a := ∃ ( λt : S. ( tεC ∧ f ε ( B · t )) , c, a ) : f ε ( B · C ) a := ∧ ( a , a ) : f ε ( B · C ) ∧ x = g · fa := ∃ ( λt : S. ( t ε ( B · C ) ∧ x = g · t ) , f, a ) : x ε ( g · ( B · C )) a := ∃ ( a , a ) : x ε ( g · ( B · C )) a := ∃ ( r , a ) : x ε ( g · ( B · C )) a := λx : S.λr : ( x ε (( g · B ) · C )) .a : (( g · B ) · C ) ⊆ ( g · ( B · C )) var x : S | r : x ε ( g · ( B · C )) r : [ ∃ f : S. ( f ε ( B · C ) ∧ x = g · f )] var f : S | r : f ε ( B · C ) ∧ x = g · fa := ∧ ( r ) : f ε ( B · C ) a := ∧ ( r ) : x = g · fa : [ ∃ c : S. ( cεC ∧ f ε ( B · c ))] var c : S | r : cεC ∧ f ε ( B · c ) a := ∧ ( r ) : cεCa := ∧ ( r ) : f ε ( B · c ) a := v ca : cεG ORMALIZING GROUPS IN TYPE THEORY 73 a := ∧ ( a , a ) : f ε ( B · c ) ∧ x = g · fa := ∃ ( λt : S. ( t ε ( B · c ) ∧ x = g · t ) , f, a ) : x ε ( g · ( B · c )) a := term . . ( S, G, · , e, − , u, B, v , g, c, w, a ) : ( g · B ) · c = g · ( B · c ) a := ∧ ( a ) xa : x ε (( g · B ) · c ) a := ∧ ( a , a ) : cεC ∧ x ε (( g · B ) · c ) a := ∃ ( λt : S. ( tεC ∧ x ε (( g · B ) · t )) , c, a ) : x ε (( g · B ) · C ) a := ∃ ( a , a ) : x ε (( g · B ) · C ) a := ∃ ( r , a ) : x ε (( g · B ) · C ) a := λx : S.λr : ( x ε ( g · ( B · C ))) .a : ( g · ( B · C )) ⊆ (( g · B ) · C ) term . . ( S, G, · , e, − , u, B, C, v , v , g, w ) := ∧ ( a , a ) : ( g · B ) · C = g · ( B · C )
6) is proven var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, C, D : ps ( S ) | v : B ⊆ G | v : C ⊆ G | v : D ⊆ G var x : S | r : x ε (( B · C ) · D ) r : [ ∃ d : S. ( dεD ∧ x ε ( B · C ) · d )] var d : S | r : dεD ∧ x ε (( B · C ) · d ) a := ∧ ( r ) : dεDa := ∧ ( r ) : x ε (( B · C ) · d ) a := v da : dεGa := term . . ( S, G, · , e, − , u, B, C, v , v , d, a ) : ( B · C ) · d = B · ( C · d ) a := ∧ ( a ) xa : x ε ( B · ( C · d )) a : [ ∃ f : S. ( f ε ( C · d ) ∧ x ε ( B · f )) var f : S | r : f ε ( C · d ) ∧ x ε ( B · f ) a := ∧ ( r ) : f ε ( C · d ) a := ∧ ( r ) : x ε ( B · f ) a := ∧ ( a , a ) : dεD ∧ f ε ( C · d ) a := ∃ ( λt : S. ( tεD ∧ f ε ( C · t )) , d, a ) : f ε ( C · D ) a := ∧ ( a , a ) : f ε ( C · D ) ∧ x ε ( B · f ) a := ∃ ( λt : S. ( t ε ( C · D ) ∧ x ε ( B · t )) , f, a ) : x ε ( B · ( C · D )) a := ∃ ( a , a ) : x ε ( B · ( C · D )) a := ∃ ( r , a ) : x ε ( B · ( C · D )) a := λx : S.λr : ( x ε (( B · C ) · D )) .a : (( B · C ) · D ) ⊆ ( B · ( C · D )) var x : S | r : x ε ( B · ( C · D )) r : [ ∃ b : S. ( bεB ∧ x ε ( b · ( C · D )))] var b : S | r : bεB ∧ x ε ( b · ( C · D )) a := ∧ ( r ) : bεBa := ∧ ( r ) : x ε ( b · ( C · D )) a := v ba : bεGa := term . . ( S, G, · , e, − , u, C, D, v , v , b, a ) : ( b · C ) · D = b · ( C · D ) a := ∧ ( a ) xa : x ε (( b · C ) · D ) a : [ ∃ f : S. ( f ε ( b · C ) ∧ x ε ( f · D ))] var f : S | r : f ε ( b · C ) ∧ x ε ( f · D ) a := ∧ ( r ) : f ε ( b · C ) a := ∧ ( r ) : x ε ( f · D ) a := ∧ ( a , a ) : bεB ∧ f ε ( b · C ) a := ∃ ( λt : S. ( tεB ∧ f ε ( t · C )) , b, a ) : f ε ( B · C ) a := ∧ ( a , a ) : f ε ( B · C ) ∧ x ε ( f · D ) a := ∃ ( λt : S. ( t ε ( B · C ) ∧ x ε ( t · D )) , f, a ) : x ε (( B · C ) · D ) a := ∃ ( a , a ) : x ε (( B · C ) · D ) a := ∃ ( r , a ) : x ε (( B · C ) · D ) a := λx : S.λr : x ε ( B · ( C · D )) .a : B · ( C · D ) ⊆ ( B · C ) · D term . . ( S, G, · , e, − , u, B, C, D, v , v , v ) := ∧ ( a , a ) : ( B · C ) · D = B · ( C · D )Proof of Proposition 4.13
1) - 3) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H Ga := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεHa := ∧ ( ∧ ( v )) : Closure ( S, H, − ) a := ∧ ( v ) : Closure ( S, H, · ) var x : S | w : xεHa := a xw : xεGa := Gr ( S, G, · , e, − , u, x, a ) : x · e = xa := term . . ( S, G, · , e, − , u, x, a ) : ( x − ) − = xa := a xw : x − εHa := term . . ( S, − , H, ( x − ) , a ) : ( x − ) − ε H − a := eq - subs ( λt : S. ( t ε H − ) , a , a ) : x ε H − a := term . . ( S, · , H, H, x, e, w, a ) : ( x · e ) ε ( H · H ) a := eq - subs ( λt : S. ( t ε ( H · H )) , a , a ) : x ε ( H · H ) a := λx : S.λw : xεH.a : H ⊆ H − a := λx : S.λw : xεH.a : H ⊆ ( H · H ) a := term . . ( S, G, · , e, − , u, H, v ) : Group ( S, H, · , e, − ) a := λx : S.λw : xεH.w : H ⊆ Ha := term . . ( S, H, · , e, − , a , H, a ) : H − ⊆ Ha := term . . ( S, H, · , e, − , a , H, H, a , a ) : ( H · H ) ⊆ H term . . ( S, G, · , e, − , u, H, v ) := ∧ ( a , a ) : H − = H
1) is proven term . . ( S, G, · , e, − , u, H, v ) := ∧ ( a , a ) : H · H = H
2) is proven var D : ps ( S ) | w : D Ga := ∧ ( ∧ ( ∧ ( w ))) : D ⊆ Ga := term . . ( S, G, · , e, − , u, H, D, a , a ) : ( H · D ) − = D − · H − a := term . . ( S, G, · , e, − , u, H, v ) : H − = Ha := term . . ( S, G, · , e, − , u, D, w ) : D − = Da := eq - cong ( λZ : ps ( S ) . ( D − · Z ) , a ) : D − · H − = D − · Ha := eq - cong ( λZ : ps ( S ) . ( Z · H ) , a ) : D − · H = D · H term . . ( S, G, · , e, − , u, H, D, v, w ) := eq - trans ( eq - trans ( a , a ) , a ): ( H · D ) − = D · H
3) is proven
4) - 6) are proven in the following diagram. var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G | g : S | w : gεGa := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ Ga := term . . ( S, G, · , e, − , H, v ) : H − = Ha := term . . ( S, G, · , e, − , H, a , g, w ) : ( g · H ) − = H − · g − a := term . . ( S, G, · , e, − , H, a , g, w ) : ( H · g ) − = g − · H − a := eq - cong ( λZ : ps ( S ) . ( Z · g − ) , a ) : H − · g − = H · g − a := eq - cong ( λZ : ps ( S ) . ( g − · Z ) , a ) : g − · H − = g − · H term . . ( S, G, · , e, − , u, H, v, g, w ) := eq - trans ( a , a ) : ( g · H ) − = H · g −
4) is proven term . . ( S, G, · , e, − , u, H, v, g, w ) := eq - trans ( a , a ) : ( H · g ) − = g − · H
5) is proven a := ∧ ∧ ( ∧ ( v ))) : eεHa := Gr ( S, G, · , e, − , u, g, w ) : g − εGa := term . . ( S, G, · , e, − , u, H, a , g − , a ) : ( g − · H ) ⊆ Ga := term . . ( S, G, · , e, − , u, H, a , g, w ) : ( H · g ) ⊆ Ga := term . . ( S, G, · , e, − , u, ( g − · H ) , a , g, w ) : ( g − · H · g ) ⊆ Ga := Gr ( S, G, · , e, − , u, g − , a ) : g − · e = g − a := Gr ( S, G, · , e, − , u, g, w ) : g − · g = ea := term . . ( S, · , H, g − , e, a ) : ( g − · e ) ε ( g − · H ) a := eq - subs ( λt : S. ( t ε ( g − · H )) , a , a ) : g − ε ( g − · H ) a := term . . ( S, · , ( g − · H ) , g, g − , a ) : ( g − · g ) ε ( g − · H · g ) a := eq - subs ( λt : S. ( t ε ( g − · H · g )) , a , a ) : e ε ( g − · H · g ) a := term . . ( S, G, · , e, − , u, ( g − · H ) , a , g, w ) : ( g − · H · g ) − = g − · ( g − · H ) − a := term . . ( S, G, · , e, − , u, H, v, g − , a ) : ( g − · H ) − = H · ( g − ) − a := term . . ( S, G, · , e, − , u, g, w ) : ( g − ) − = ga := eq - cong ( λt : S. ( H · t ) , a ) : H · ( g − ) − = H · ga := eq - trans ( a , a ) : ( g − · H ) − = H · ga := eq - cong ( λZ : ps ( S ) . ( g − · Z ) , a ) : g − · ( g − · H ) − = g − · ( H · g ) a := term . . ( S, G, · , e, − , u, H, a , g − , g, a , w ) : g − · H · g = g − · ( H · g ) a := eq - trans ( eq - trans ( a , a ) , a ) : ( g − · H · g ) − = g − · H · ga := term . . ( S, G, · , e, − , u, ( g − · H ) , ( g − · H · g ) , a , a , g, w ): ( g − · H · g ) · ( g − · H · g ) = ( g − · H ) · ( g · ( g − · H · g )) a := term . . ( S, G, · , e, − , u, ( g − · H ) , a , g, g, w, w ) : g · ( g − · H ) · g = g · ( g − · H · g ) a := term . . ( S, G, · , e, − , u, H, a , g, g − , w, a ) : ( g · g − ) · H = g · ( g − · H ) a := eq - cong ( λt : S. ( t · H ) , a ) : ( g · g − ) · H = e · Ha := term . . ( S, G, · , e, − , u, H, a ) : e · H = Ha := eq - trans ( eq - trans ( a , a ) , a ) : g · ( g − · H ) = Ha := eq - cong ( λZ : ps ( S ) . ( Z · g ) , a ) : ( g · ( g − · H )) · g = H · ga := eq - trans ( a , a ) : g · ( g − · H · g ) = H · ga := eq - cong ( λZ : ps ( S ) . ( g − · H · Z ) , a ) : ( g − · H )( g · ( g − · H · g )) = ( g − · H ) · ( H · g ) a := term . . ( S, G, · , e, − , u, H, ( H · g ) , a , a , g − , a ) : ( g − · H ) · ( H · g ) = g − · ( H · ( H · g )) a := term . . ( S, G, · , e, − , u, H, H, a , a , g, w ) : ( H · H ) · g = H · ( H · g ) a := term . . ( S, G, · , e, − , u, H, v ) : H · H = Ha := eq - cong ( λZ : ps ( S ) . ( Z · g ) , a ) : ( H · H ) · g = H · ga := eq - trans ( a , a ) : H · ( H · g ) = H · ga := eq - cong ( λZ : ps ( S ) . ( g − · Z ) , a ) : g − · ( H · ( H · g )) = g − · ( H · g ) a := term . . ( S, G, · , e, − , u, H, a , g − , g, a , w ) : g − · H · g = g − · ( H · g ) a := eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ): ( g − · H · g ) · ( g − · H · g ) = g − · H · g var x : S | r : x ε ( g − · H · g ) a := term . . ( S, · , ( g − · H · g ) , x, r ) : x − ε ( g − · H · g ) − a := ∧ ( a )( x − ) a : x − ε ( g − · H · g ) a := λx : S.λr : ( x ε ( g − · H · g )) .a : Closure ( S, ( g − · H · g ) , − ) var x : S | r : x ε ( g − · H · g ) | y : S | r : y ε ( g − · H · g ) a := term . . ( S, · , ( g − · H · g ) , ( g − · H · g ) , x, y, r , r ) : ( x · y ) ε (( g − · H · g ) · ( g − · H · g )) ORMALIZING GROUPS IN TYPE THEORY 77 a := ∧ ( a )( x · y ) a : ( x · y ) ε ( g − · H · g ) a := λx : S.λr : ( x ε ( g − · H · g )) .λy : S.λr : ( y ε ( g − · H · g )) .a : Closure ( S, ( g − · H · g ) , · ) term . . ( S, G, · , e, − , u, H, v, g, w ) := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : ( g − · H · g ) G
6) is proven var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H G | g : S | w : gεGa := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεHa := ∧ ( ∧ ( v )) : Closure ( S, H, − ) a := ∧ ( v ) : Closure ( S, H, · ) a := Gr ( S, G, · , e, − , u, g, w ) : g − εGa := Gr ( S, G, · , e, − , u, g, w ) : g · e = ga := Gr ( S, G, · , e, − , u, g, w ) : g · g − = e Notation R := R H : S → S → ∗ p a := term . . ( S, G, · , e, − , u, H, v, g, w ) : g · H = Rg ∩ Gr : ( g · H = H ) a := term . . ( S, · , H, g, e, a ) : ( g · e ) ε ( g · H ) a := eq - subs ( λt : S. ( t ε ( g · H )) , a , a ) : g ε ( g · H ) a := ∧ ( r ) ga : gεHa := λr : ( g · H = H ) .a : ( g · H = H ) ⇒ gεHr : gεH var z : S | r : z ε ( g · H ) r : ( ∃ h : S. ( hεH ∧ z = g · h )) var h : S | r : hεH ∧ z = g · ha := ∧ ( r ) : hεHa := ∧ ( r ) : z = g · ha := a gr ha : ( g · h ) ε Ha := eq - subs ( λt : S.tεH, a , a ) : zεHa := ∃ ( r , a ) : zεHa := λz : S.λr : ( z ε ( g · H )) .a : ( g · H ) ⊆ H var z : S | r : zεHa := a zr : zεGa := a gr : g − εHa := a ( g − ) a zr : ( g − · z ) ε H a : zεRga := ∧ ( a , a ) : zε ( Rg ∩ G ) a := ∧ ( a ) za : z ε ( g · H ) a := λz : S.λr : zεH.a : H ⊆ ( g · H ) a := ∧ ( a , a ) : ( g · H ) = Ha := λr : gεH.a : gεH ⇒ (( g · H ) = H ) term . . ( S, G, · , e, − , u, H, v, g, w ) := ∧ ( a , a ) : ( g · H = H ) ⇔ gεH Proof of Theorem 4.14var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : eεGa := Gr ( S, G, · , e, − , u, e, a ) : e · e = e var B, C : ps ( S ) | v : B G | w : C Ga := ∧ ( ∧ ( ∧ ( v ))) : B ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεBa := ∧ ( ∧ ( ∧ ( w ))) : C ⊆ Ga := ∧ ( ∧ ( ∧ ( w ))) : eεCa := term . . ( S, G, · , e, − , u, B, C, a , a ) : ( B · C ) ⊆ Ga := term . . ( S, G, · , e, − , u, B, v ) : B − = Ba := term . . ( S, G, · , e, − , u, B, C, v, w ) : ( B · C ) − = C · Ba := term . . ( S, · , B, C, e, e, a , a ) : ( e · e ) ε ( B · C ) a := eq - subs ( λt : S. ( t ε ( B · C )) , a , a ) : e ε ( B · C ) r : ( B · C ) Ga := term . . ( S, G, · , e, − , u, ( B · C ) , r ) : ( B · C ) − = B · Ca := eq - trans ( a , a ) : B · C = C · Ba := λr : (( B · C ) G ) .a : ( B · C ) G ⇒ B · C = C · Br : B · C = C · Ba := eq - trans ( a , r ) : ( B · C ) − = B · Ca := term . . ( S, G, · , e, − , u, B, B, C, a , a , a ) : ( B · B ) · C = B · ( B · C ) a := term . . ( S, G, · , e, − , u, B, C, C, a , a , a ) : ( B · C ) · C = B · ( C · C ) a := term . . ( S, G, · , e, − , u, B, v ) : B · B = Ba := term . . ( S, G, · , e, − , u, C, w ) : C · C = Ca := eq - cong ( λZ : ps ( S ) . ( Z · C ) , a ) : ( B · B ) · C = B · Ca := eq - cong ( λZ : ps ( S ) . ( B · Z ) , a ) : B · ( C · C ) = B · Ca := eq - trans ( a , a ) : B · ( B · C ) = B · Ca := eq - trans ( a , a ) : ( B · C ) · C = B · C ORMALIZING GROUPS IN TYPE THEORY 79 a := eq - cong ( λZ : ps ( S ) . ( Z · C ) , r ) : ( C · B ) · C = ( B · C ) · Ca := eq - trans ( a , a ) : ( C · B ) · C = B · Ca := term . . ( S, G, · , e, − , u, C, B, C, a , a , a ) : ( C · B ) · C = C · ( B · C ) a := eq - trans ( a , a ) : C · ( B · C ) = B · Ca := eq - cong ( λZ : ps ( S ) . ( B · Z ) , a ) : B · ( C · ( B · C )) = B · ( B · C ) a := term . . ( S, G, · , e, − , u, B, C, ( B · C ) , a , a , a ) : ( B · C ) · ( B · C ) = B · ( C · ( B · C )) a := eq - trans ( eq - trans ( a , a ) , a ) : ( B · C ) · ( B · C ) = B · C var x : S | r : x ε ( B · C ) a := term . . ( S, − , ( B · C ) , x, r ) : x − ε ( B · C ) − a := ∧ ( a ) xa : x − ε ( B · C ) a := λx : S.λr : ( x ε ( B · C )) .a : Closure ( S, ( B · C ) , − ) var x : S | r : x ε ( B · C ) | y : S | r : y ε ( B · C ) a := term . . ( S, · , ( B · C ) , ( B · C ) , x, y, r , r ) : ( x · y ) ε ( B · C ) · ( B · C ) a := ∧ ( a )( x · y ) a : ( x · y ) ε ( B · C ) a := λx : S.λr : ( x ε ( B · C )) .λy : S.λr : ( y ε ( B · C )) .a : Closure ( S, ( B · C ) , · ) a := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : ( B · C ) Ga := λr : ( B · C = C · B ) .a : ( B · C = C · B ⇒ ( B · C ) G ) term . ( S, G, · , e, − , u, B, C, v, w ) := ∧ ( a , a ) : ( B · C ) G ⇔ B · C = C · B Proof of Proposition 5.2var S : ∗ s | G : ps ( S )Definition Subs ( S, G, · , e, − ) := { B : ps ( S ) | B ⊆ G } : ps ( ps (( S ))Notation M for Subs ( S, G, · , e, − ) var · : S → S → S | − : S → S Definition R c := λx, y : S. ∃ g : S. ( gεG ∧ y = g − · x · g ) : S → S → ∗ p Definition R s := λB, C : ps ( S ) . ∃ g : S. ( gεG ∧ C = g − · B · g ) : ps ( S ) → ps ( S ) → ∗ p var e : S Definition
Subg ( S, G, · , e, − ) := { B : ps ( S ) | B G } : ps ( ps (( S ))Notation K for Subg ( S, G, · , e, − ) u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : eεGa := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) a := term . . ( S, G, · , e, − , u ) : e − = e var x : S | v : xεGa := eq - cong ( λt : S. ( t · x ) , a ) : e − · x = e · x a := Gr ( S, G, · , e, − , u, x, v ) : e · x = xa := eq - trans ( a , a ) : e − · x = xa := eq - cong ( λt : S. ( t · e ) , a ) : e − · x · e = x · ea := Gr ( S, G, · , e, − , u, x, v ) : x · e = xa := eq - trans ( a , a ) : e − · x · e = xa := eq - sym ( a ) : x = e − · x · ea := ∧ ( a , a ) : eεG ∧ x = e − · x · ea := ∃ ( λt : S. ( tεG ∧ x = t − · x · t ) , e, a : R c xxa := λx : S.λv : xεG.a : ref l ( S, G, R c ) var x : S | v : xεG | y : S | v : yεG | w : R c xyw : ( ∃ g : S. ( gεG ∧ y = g − · x · g )) var g : S | r : gεG ∧ y = g − · x · ga := ∧ ( r ) : gεGa := ∧ ( r ) : y = g − · x · ga := Gr ( S, G, · , e, − , u, g, a ) : g − εGa := eq - cong ( λt : S. ( g · t ) , a ) : g · y = g · ( g − · x · g ) a := Gr ( S, G, · , e, − , u, x, g, v , a ) : ( x · g ) ε Ga := a ga ( g − ) a ( x · g ) a : ( g · g − ) · ( x · g ) = g · ( g − · ( x · g )) a := a ( g − ) a xv ga : g − · x · g = g − · ( x · g ) a := eq - cong ( λt : S. ( g · t ) , a ) : g · ( g − · x · g ) = g · ( g − · ( x · g )) a := Gr ( S, G, · , e, − , u, g, a ) : g · g − = ea := eq - cong ( λt : S. ( t · ( x · g )) , a ) : g · g − · ( x · g ) = e · ( x · g ) a := Gr ( S, G, · , e, − , u, ( x · g ) , a ) : e · ( x · g ) = x · ga := eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) : g · y = x · ga := eq - cong ( λt : S. ( t · g − ) , a ) : g · y · g − = x · g · g − a := a xv ga ( g − ) a : x · g · g − = x · ( g · g − ) a := eq - cong ( λt : S. ( x · t ) , a ) : x · ( g · g − ) = x · ea := Gr ( S, G, · , e, − , u, x, v ) : x · e = xa := term . . ( S, G, · , e, − , u, g, a ) : ( g − ) − = ga := eq - subs ( λt : S. ( t · y · g − = x · g · g − ) , a , a ) : ( g − ) − · y · g − = x · g · g − a := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : ( g − ) − · y · g − = xa := eq - sym ( a ) : x = ( g − ) − · y · g − a := ∧ ( a , a ) : g − εG ∧ x = ( g − ) − · y · g − a := ∃ ( λt : S. ( tεG ∧ x = t − · y · t ) , g − , a ) : R c yxa := ∃ ( w, a ) : R c yxa := λx : S.λv : xεG.λy : S.λv : yεG.λw : R c xy.a : sym ( S, G, R c ) ORMALIZING GROUPS IN TYPE THEORY 81 var x : S | v : xεG | y : S | v : yεG | z : S | v : zεG | w : R c xy | w : R c yzw : ( ∃ g : S. ( gεG ∧ y = g − · x · g )) var g : S | r : gεG ∧ y = g − · x · ga := ∧ ( r ) : gεGa := ∧ ( r ) : y = g − · x · ga := Gr ( S, G, · , e, − , u, g, a ) : g − εGw : ( ∃ h : S. ( hεG ∧ z = h − · y · h )) var h : S | r : hεG ∧ z = h − · y · ha := ∧ ( r ) : hεGa := ∧ ( r ) : z = h − · y · ha := Gr ( S, G, · , e, − , u, h, a ) : h − εGa := term . . ( S, G, · , e, − , u, g, h, a , a ) : ( g · h ) − = h − · g − a := eq - cong ( λt : S. ( t · x ) , a ) : h − · g − · x = ( g · h ) − · xa := a ( h − ) a ( g − ) a xv : h − · g − · x = h − · ( g − · x ) a := eq - trans ( a , a ) : h − · ( g − · x ) = ( g · h ) − · xa := Gr ( S, G, · , e, − , u, g − , x, a , v ) : ( g − · x ) ε Ga := a ( h − ) a ( g − · x ) a ga : h − · ( g − · x ) · g = h − · ( g − · x · g ) a := eq - cong ( λt : S. ( t · h ) , a ) : h − · ( g − · x · g ) · h = h − · ( g − · x ) · g · ha := eq - cong ( λt : S. ( t · g · h ) , a ) : h − · ( g − · x ) · g · h = ( g · h ) − · x · g · ha := Gr ( S, G, · , e, − , u, g, h, a , a ) : ( g · h ) ε Ga := Gr ( S, G, · , e, − , u, ( g · h ) , a ) : ( g · h ) − ε Ga := Gr ( S, G, · , e, − , u, ( g · h ) − , x, a , v ) : (( g · h ) − · x ) ε Ga := a (( g · h ) − · x ) a ga ha : ( g · h ) − · x · g · h = ( g · h ) − · x · ( g · h ) a := eq - subs ( λt : S. ( z = h − · t · h ) , a , a ) : z = h − · ( g − · x · g ) · ha := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : z = ( g · h ) − · x · ( g · h ) a := ∧ ( a , a ) : ( g · h ) ε G ∧ z = ( g · h ) − · x · ( g · h ) a := ∃ ( λt : S. ( tεG ∧ z = t − · x · t ) , ( g · h ) , a ) : R c xza := ∃ ( w , a ) : R c xza := ∃ ( w , a ) : R c xza := λx : S.λv : xεG.λy : S.λv : yεG.λz : S.λv : zεG.λw : R c xy.λw : R c yz.a : trans ( S, G, R c ) term . . ( S, G, · , e, − , u ) := ∧ ( ∧ ( a , a ) , a ) : equiv - rel ( S, G, R c )
1) is proven var B : ps ( S ) | v : BεMv : B ⊆ Ga := term . . ( S, G, · , e, − , u, B, v ) : e · B = Ba := term . . ( S, G, · , e, − , u, B, v ) : B · e = B a := eq - cong ( λt : S. ( t · B ) , a ) : e − · B = e · Ba := eq - trans ( a , a ) : e − · B = Ba := eq - cong ( λZ : ps ( S ) . ( Z · e ) , a ) : e − · B · e = B · ea := eq - trans ( a , a ) : e − · B · e = Ba := eq - sym ( a ) : B = e − · B · ea := ∧ ( a , a ) : eεG ∧ B = e − · B · ea := ∃ ( λt : S. ( tεG ∧ B = t − · B · t ) , e, a ) : R s BBa := λB : ps ( S ) .λv : BεM.a : ref l ( ps ( S ) , M, R s ) var B : ps ( S ) | v : BεM | C : ps ( S ) | v : CεM | w : R s BCv : B ⊆ Gw : ( ∃ g : S. ( gεG ∧ C = g − · B · g )) var g : S | r : gεG ∧ C = g − · B · ga := ∧ ( r ) : gεGa := ∧ ( r ) : C = g − · B · ga := Gr ( S, G, · , e, − , u, g, a ) : g − εGa := eq - cong ( λZ : ps ( S ) . ( g · Z ) , a ) : g · C = g · ( g − · B · g ) a := term . . ( S, G, · , e, − , u, B, v , g, a ) : ( B · g ) ⊆ Ga := term . . ( S, G, · , e, − , u, ( B · g ) , a , g, g − , a , a ) : ( g · g − ) · ( B · g ) = g · ( g − · ( B · g )) a := term . . ( S, G, · , e, − , u, B, v , g − , g, a , a ) : g − · B · g = g − · ( B · g ) a := eq - cong ( λZ : ps ( S ) . ( g · Z ) , a ) : g · ( g − · B · g ) = g · ( g − · ( B · g )) a := Gr ( S, G, · , e, − , u, g, a ) : g · g − = ea := eq - cong ( λt : S. ( t · ( B · g )) , a ) : g · g − · ( B · g ) = e · ( B · g ) a := term . . ( S, G, · , e, − , u, ( B · g ) , a ) : e · ( B · g ) = B · ga := eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) : g · C = B · ga := eq - cong ( λt : S. ( t · g − ) , a ) : g · C · g − = B · g · g − a := term . . ( S, G, · , e, − , u, B, v , g, g − , a , a ) : B · g · g − = B · ( g · g − ) a := eq - cong ( λt : S. ( B · t ) , a ) : B · ( g · g − ) = B · ea := term . . ( S, G, · , e, − , u, B, v ) : B · e = Ba := term . . ( S, G, · , e, − , u, g, a ) : ( g − ) − = ga := eq - subs ( λt : S. ( t · C · g − = B · g · g − ) , a , a ) : ( g − ) − · C · g − = B · g · g − a := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : ( g − ) − · C · g − = Ba := eq - sym ( a ) : B = ( g − ) − · C · g − a := ∧ ( a , a ) : g − εG ∧ B = ( g − ) − · C · g − a := ∃ ( λt : S. ( tεG ∧ B = t − · C · t ) , g − , a ) : R s CBa := ∃ ( w, a ) : R s CBa := λB : ps ( S ) .λv : BεM.λC : ps ( S ) .λv : CεM.λw : R s BC.a : sym ( ps ( S ) , M, R s ) ORMALIZING GROUPS IN TYPE THEORY 83 var B : ps ( S ) | v : BεM | C : ps ( S ) | v : CεM | D : ps ( S ) | v : DεM | w : R s BC | w : R s CDv : B ⊆ Gw : ( ∃ g : S. ( gεG ∧ C = g − · B · g )) var g : S | r : gεG ∧ C = g − · B · ga := ∧ ( r ) : gεGa := ∧ ( r ) : C = g − · B · ga := Gr ( S, G, · , e, − , u, g, a ) : g − εGw : ( ∃ h : S. ( hεG ∧ D = h − · C · h )) var h : S | r : hεG ∧ D = h − · C · ha := ∧ ( r ) : hεGa := ∧ ( r ) : D = h − · C · ha := Gr ( S, G, · , e, − , u, h, a ) : h − εGa := term . . ( S, G, · , e, − , u, g, h, a , a ) : ( g · h ) − = h − · g − a := eq - cong ( λt : S. ( t · B ) , a ) : h − · g − · B = ( g · h ) − · Ba := term . . ( S, G, · , e, − , u, B, v , h − , g − , a , a ) : h − · g − · B = h − · ( g − · B ) a := eq - trans ( a , a ) : h − · ( g − · B ) = ( g · h ) − · Ba := term . . ( S, G, · , e, − , u, B, v , g − , a ) : ( g − · B ) ⊆ Ga := term . . ( S, G, · , e, − , u, ( g − · B ) , a , h − , g, a , a ): h − · ( g − · B ) · g = h − · ( g − · B · g ) a := eq - cong ( λZ : ps ( S ) . ( Z · h ) , a ) : h − · ( g − · B · g ) · h = h − · ( g − · B ) · g · ha := eq - cong ( λZ : ps ( S ) . ( Z · g · h ) , a ) : h − · ( g − · B ) · g · h = ( g · h ) − · B · g · ha := Gr ( S, G, · , e, − , u, g, h, a , a ) : ( g · h ) ε Ga := Gr ( S, G, · , e, − , u, ( g · h ) , a ) : ( g · h ) − εGa := term . . ( S, G, · , e, − , u, B, v , ( g · h ) − , a ) : (( g · h ) − · B ) ⊆ Ga := term . . ( S, G, · , e, − , u, (( g · h ) − · B ) , a , g, h, a , a ): ( g · h ) − · B · g · h = ( g · h ) − · B · ( g · h ) a := eq - subs ( λZ : ps ( S ) . ( D = h − · Z · h ) , a , a ) : D = h − · ( g − · B · g ) · ha := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : D = ( g · h ) − · B · ( g · h ) a := ∧ ( a , a ) : ( g · h ) ε G ∧ D = ( g · h ) − · B · ( g · h ) a := ∃ ( λt : S. ( tεG ∧ D = t − · B · t ) , ( g · h ) , a ) : R s BDa := ∃ ( w , a ) : R s BDa := ∃ ( w , a ) : R s BDa := λB : ps ( S ) .λv : BεM.λC : ps ( S ) .λv : CεM.λD : ps ( S ) .λv : DεM.λw : R s BC.λw : R s CD.a : trans ( ps ( S ) , M, R s ) term . . ( S, G, · , e, − , u ) := ∧ ( ∧ ( a , a ) , a ) : equiv - rel ( ps ( S ) , M, R s )
2) is proven var B : ps ( S ) | v : BεKv : B Ga := ∧ ( ∧ ( ∧ ( v ))) : B ⊆ Ga : BεMa := a Ba : R s BBa := λB : ps ( S ) .λv : BεK.a : K ⊆ Ma := λB : ps ( S ) .λv : BεK.a : ref l ( ps ( S ) , K, R s ) var B : ps ( S ) | v : BεK | C : ps ( S ) | v : CεK | w : R s BCa := a Bv : BεMa := a Cv : CεMa := a Ba Ca w : R s CBa := λB : ps ( S ) .λv : BεK.λC : ps ( S ) .λv : CεK.λw : R s BC.a : sym ( ps ( S ) , K, R s ) var B : ps ( S ) | v : BεK | C : ps ( S ) | v : CεK | D : ps ( S ) | v : DεK | w : R s BC | w : R s CDa := a Bv : BεMa := a Cv : CεMa := a Dv : DεMa := a Ba Ca Da w w : R s BDa := λB : ps ( S ) .λv : BεK.λC : ps ( S ) .λv : CεK.λD : ps ( S ) .λv : DεK.λw : R s BC.λw : R s CD.a : trans ( ps ( S ) , K, R s ) term . . ( S, G, · , e, − , u ) := ∧ ( ∧ ( a , a ) , a ) : equiv - rel ( ps ( S ) , K, R s )
3) is proven
Proof of Proposition 5.4 var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := term . . ( S, G, · , e, − , u ) : G G var g : S | v : gεG | h : S | w : hεGa := Gr ( S, G, · , e, − , u, g, v ) : g − ε Ga := Gr ( S, G, · , e, − , u, g − , h, a , w ) : ( g − · h ) ε Ga := Gr ( S, G, · , e, − , u, ( g − · h ) , g, a , v ) : ( g − · h · g ) ε Ga := λg : S.λv : gεG.λh : S.λw : hεG.a : ∀ g : S. [ gεG ⇒ ∀ h : S. ( hεG ⇒ ( g − · h · g ) ε G )] term . . ( S, G, · , e, − , u ) := ∧ ( a , a ) : G ⊳ G var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − )Notation H := { x : S | x = e } : ps ( S ) a := term . . ( S, G, · , e, − , u ) : H G ORMALIZING GROUPS IN TYPE THEORY 85 var g : S | v : gεG | h : S | w : hεHw : h = ea := Gr ( S, G, · , e, − , u, g, v ) : g − ε Ga := Gr ( S, G, · , e, − , u, g − , a ) : g − · e = g − a := Gr ( S, G, · , e, − , u, g, v ) : g − · g = ea := eq - cong ( λt : S. ( g − · t · g ) , w ) : g − · h · g = g − · e · ga := eq - cong ( λt : S. ( t · g ) , a ) : g − · e · g = g − · ga := eq - trans ( eq - trans ( a , a ) , a ) : g − · h · g = ea : ( g − · h · g ) ε Ha := λg : S.λv : gεG.λh : S.λw : hεH.a : ∀ g : S. [ gεG ⇒ ∀ h : S. ( hεH ⇒ ( g − · h · g ) ε H )] term . . ( S, G, · , e, − , u ) := ∧ ( a , a ) : H ⊳ G
Proof of Proposition 5.5var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Abelian - group ( S, G, · , e, − ) a := ∧ ( u ) : Group ( S, G, · , e, − ) a := ∧ ( u ) : Commut ( S, G, · ) a := Gr ( S, G, · , e, − , a ) : Assoc ( S, G, · ) var H : ps ( S ) | v : H Ga := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ G var g : S | w : gεG | h : S | w : hεHa := Gr ( S, G, · , e, − , a , g, w ) : g − εGa := a hw : hεGa := a ( g − ) a ha : g − · h = h · g − a := eq - cong ( λt : S. ( t · g ) , a ) : g − · h · g = h · g − · ga := a ha ( g − ) a gw : h · g − · g = h · ( g − · g ) a := Gr ( S, G, · , e, − , a , g, w ) : g − · g = ea := eq - cong ( λt : S. ( h · t ) , a ) : h · ( g − · g ) = h · ea := Gr ( S, G, · , e, − , a , h, a ) : h · e = ha := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : g − · h · g = ha := eq - subs ( λt : S.tεH, a , w ) : ( g − · h · g ) ε Ha := λg : S.λw : gεG.λh : S.λw : hεH.a : ∀ g : S. [ gεG ⇒ ∀ h : S. ( hεH ⇒ ( g − · h · g ) ε H )] term . ( S, G, · , e, − , u, H, v ) := ∧ ( v, a ) : H ⊳ G
Proof of Proposition 5.6var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : eεGa := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) var H : ps ( S ) | v : H GU := { Z : ps ( S ) | ∃ x : S. ( xεG ∧ Z = x − · H · x ) } : ps ( ps ( S )) N := ∩ U : ps ( S ) a := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ Ga := ∧ ( ∧ ( v )) : Closure ( S, H, − ) a := ∧ ( v ) : Closure ( S, H, · ) a := eq - ref l : e − · H · e = e − · H · ea := ∧ ( a , a ) : eεG ∧ e − · H · e = e − · H · ea := ∃ ( λt : S. ( tεG ∧ e − · H · e = t − · H · t ) , e, a ) : ( e − · H · e ) ε Ua := ∃ ( λZ : ps ( S ) .ZεU, ( e − · H · e ) , a ) : ( ∃ Z : ps ( S ) .ZεU ) var Z : ps ( S ) | w : Z ε Uw : ( ∃ x : S. ( xεG ∧ Z = x − · H · x )) var x : S | r : xεG ∧ Z = x − · H · xa := ∧ ( r ) : xεGa := ∧ ( r ) : Z = x − · H · xa := term . . ( S, G, · , e, − , u, H, v, x, a ) : ( x − · H · x ) Ga := eq - subs ( λX : ps ( S ) .X G, a , a ) : Z Ga := ∃ ( w, a ) : Z Ga := λZ : ps ( S ) .λw : ZεU.a : [ ∀ Z : ps ( S ) . ( ZεU ⇒ Z G )] a := term . . ( S, G, · , e, − , u, U, a , a ) : ∩ U Ga : N G var g : S | w : gεG | h : S | w : hεNa := Gr ( S, G, · , e, − , u, g, w ) : g − εG var Z : ps ( S ) | r : Z ε Ur : ( ∃ x : S. ( xεG ∧ Z = x − · H · x )) var x : S | r : xεG ∧ Z = x − · H · xa := ∧ ( r ) : xεGa := ∧ ( r ) : Z = x − · H · x Notation y := x · g − : Sa := Gr ( S, G, · , e, − , u, x, g − , a , a ) : yεG ORMALIZING GROUPS IN TYPE THEORY 87 a := Gr ( S, G, · , e, − , u, y, a ) : y − ε G Notation X := y − · H · y : ps ( S ) a := eq - ref l : X = y − · H · ya := ∧ ( a , a ) : yεG ∧ X = y − · H · ya := ∃ ( λt : S. ( tεG ∧ X = t − · H · t ) , y, a ) : XεUa := w Xa : hεXa : h ε ( y − · H · y ) a := Gr ( S, G, · , e, − , u, g, w ) : g − · g = ea := a xa g − a gw : ( x · g − ) · g = x · ( g − · g ) a := eq - cong ( λt : S. ( x · t ) , a ) : x · ( g − · g ) = x · ea := Gr ( S, G, · , e, − , u, x, a ) : x · e = xa := eq - trans ( eq - trans ( a , a ) , a ) : y · g = xa := term . . ( S, G, · , e, − , u, y, g, a , w ) : ( y · g ) − = g − · y − a := eq - cong ( − , a ) : ( y · g ) − = x − a := eq - trans ( a , a ) : g − · y − = x − a := term . . ( S, G, · , e, − , u, H, a , y − , a ) : ( y − · H ) ⊆ Ga := term . . ( S, G, · , e, − , u, ( y − · H ) , a , y, a ) : ( y − · H · y ) ⊆ Ga := term . . ( S, · , ( y − · H · y ) , g − , h, a ) : ( g − · h ) ε ( g − · ( y − · H · y )) a := a ha : hεGa := Gr ( S, G, · , e, − , u, h, a ) : h − ε Ga := term . . ( S, G, · , e, − , u, H, a , g − , y − , a , a ) : g − · y − · H = g − · ( y − · H ) a := eq - cong ( λZ : ps ( S ) . ( Z · y ) , a ) : g − · y − · H · y = g − · ( y − · H ) · ya := term . . ( S, G, · , e, − , u, ( y − · H ) , a , g − , y, a , a ): g − · ( y − · H ) · y = g − · ( y − · H · y ) a := eq - cong ( λt : S. ( t · H · y ) , a ) : g − · y − · H · y = x − · H · ya := eq - trans ( eq - trans ( a , a ) , a ) : g − · ( y − · H · y ) = x − · H · ya := ∧ ( a )( g − · h ) a : ( g − · h ) ε ( x − · H · y ) a := Gr ( S, G, · , e, − , u, x, a ) : x − ε Ga := term . . ( S, G, · , e, − , u, H, a , x − , a ) : ( x − · H ) ⊆ Ga := term . . ( S, · , ( x − · H · y ) , g, ( g − · h ) , a ) : ( g − · h · g ) ε ( x − · H · y · g ) a := term . . ( S, G, · , e, − , u, ( x − · H ) , a , y, g, a , w ) : x − · H · y · g = x − · H · ( y · g ) a := eq - cong ( λt : S. ( x − · H · t ) , a ) : x − · H · ( y · g ) = x − · H · xa := eq - trans ( a , a ) : x − · H · y · g = x − · H · xa := ∧ ( a )( g − · h · g ) a : ( g − · h · g ) ε ( x − · H · x ) a := ∧ ( a )( g − · h · g ) a : ( g − · h · g ) ε Za := ∃ ( r , a ) : ( g − · h · g ) ε Z a := λZ : ps ( S ) .λr : ZεU.a : ( g − · h · g ) ε Na := λg : S.λw : gεG.λh : S.λw : hεN.a : ∀ g : S. [ gεG ⇒ ∀ h : S. ( hεN ⇒ ( g − · h · g ) ε N )] term . ( S, G, · , e, − , u, H, v ) := ∧ ( a , a ) : N ⊳ G
Proof of Proposition 5.7var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, · ) var g : S | v : gεGa ( g, v ) := Gr ( S, G, · , e, − , u, g, v ) : g − εGa ( g, v ) := Gr ( S, G, · , e, − , u, g, v ) : g − · g = e var F : ps ( S ) | w : F ⊆ Ga := eq - cong ( λt : S. ( F · t ) , a ( g, v )) : F · ( g − · g ) = F · ea := term . . ( S, G, · , e, − , u, F, w ) : F · e = Fa := term . . ( S, G, · , e, − , u, F, w, g − , g, a ( g, v ) , v ) : F · g − · g = F · ( g − · g ) a ( g, v, F, w ) := eq - trans ( eq - trans ( a , a ) , a ) : F · g − · g = F var H : ps ( S ) | v : H G Notation A := ∀ g : S. ( gεG ⇒ ( g − · H · g ) = H ) : ∗ p Notation B := ∀ g : S. ( gεG ⇒ ( g · H · g − ) = H ) : ∗ p Notation C := ∀ g : S. ( gεG ⇒ g · H = H · g ) : ∗ p Notation D := ∀ g : S. ( gεG ⇒ ( g − · H · g ) ⊆ H ) : ∗ p a := ∧ ( ∧ ( ∧ ( v ))) : H ⊆ G var g : S | w : gεG | h : S | r : hεHa := a ( g, w ) : g − εGa := term . . ( S, · , H, g − , h, r ) : ( g − · h ) ε ( g − · H ) a ( g, h, w, r ) := term . . ( S, · , ( g − · H ) , g, ( g − · h ) , a ) : ( g − · h · g ) ε ( g − · H · g ) w : H ⊳ G | g : S | r : gεGx : S | r : x ε ( g − · H · g ) r : [ ∃ b : S. ( b ε ( g − · H ) ∧ x = b · g )] var b : S | r : b ε ( g − · H ) ∧ x = b · ga := ∧ ( r ) : b ε ( g − · H ) a := ∧ ( r ) : x = b · ga : ( ∃ h : S. ( hεH ∧ b = g − · h )] var h : S | r : hεH ∧ b = g − · ha := ∧ ( r ) : hεHa := ∧ ( r ) : b = g − · h ORMALIZING GROUPS IN TYPE THEORY 89 a := eq - cong ( λt : S. ( t · g ) , a ) : b · g = g − · h · ga := eq - trans ( a , a ) : x = g − · h · ga := ∧ ( w ) gr ha : ( g − · h · g ) ε Ha := eq - subs ( λt : S.tεH, a , a ) : xεHa := ∃ ( a , a ) : xεHa := ∃ ( r , a ) : xεHa := λx : S.λr : x ε ( g − · H · g ) .a : ( g − · H · g ) ⊆ Hh : S | r : hεHa := a ( g, r ) : g − εGa := term . . ( S, G, · , e, − , u, g, r ) : ( g − ) − = ga := a hr : hεGx := g · h · g − a := eq - cong ( λt : S. ( t · h · g − ) , a ) : ( g − ) − · h · g − = g · h · g − a : ( g − ) − · h · g − = xa := ∧ ( w )( g − ) a hr : (( g − ) − · h · g − ) ε Ha := eq - subs ( λt : S.tεH, a , a ) : xεHa := a ( g, x, r , a ) : ( g − · x · g ) ε ( g − · H · g ) a := eq - ref l : x = g · h · g − a := eq - cong ( λt : S. ( t · g ) , a ) : x · g = g · h · g − · ga := Gr ( S, G, · , e, − , u, g, h, r , a ) : ( g · h ) ε Ga := a ( g · h ) a ( g − ) a gr : g · h · g − · g = g · h · ( g − · g ) a := a ( g, r ) : g − · g = ea := eq - cong ( λt : S. ( g · h · t ) , a ) : g · h · ( g − · g ) = g · h · ea := Gr ( S, G, · , e, − , u, ( g · h ) , a ) : g · h · e = g · ha := eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) : x · g = g · ha := eq - cong ( λt : S. ( g − · t ) , a ) : g − ( x · g ) = g − ( g · h ) a := a xa : xεGa := a ( g − ) a xa gr : g − x · g = g − ( x · g ) a := a ( g − ) a gr ha : g − g · h = g − ( g · h ) a := eq - cong ( λt : S. ( t · h ) , a ) : g − · g · h = e · ha := Gr ( S, G, · , e, − , u, h, a ) : e · h = ha := eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) : g − · x · g = ha := eq - subs ( λt : S. ( t ε ( g − · H · g )) , a , a ) : h ε ( g − · H · g ) a := λh : S.λr : hεH.a : H ⊆ ( g − · H · g ) a := ∧ ( a , a ) : g − · H · g = H term . . ( S, G, · , e, − , u, H, v ) := λw : H ⊳ G.λg : S.λr : gεG.a : H ⊳ G ⇒ A ⇒ is proven w : A | g : S | r : g εGa := a ( g, r ) : g − εGa := w ( g − ) a : ( g − ) − · H · g − = Ha := term . . ( S, G, · , e, − , u, g, r ) : ( g − ) − = ga := eq - subs ( λt : S. ( t · H · g − = H ) , a , a ) : g · H · g − = H term . . ( S, G, · , e, − , u, H, v ) := λw : A.λg : S.λr : gεG.a : A ⇒ B ⇒ is proven w : B | g : S | r : g εGa := wgr : g · H · g − = Ha := eq - cong ( λZ : ps ( S ) . ( Z · g ) , a ) : g · H · g − · g = H · ga := term . . ( S, G, · , e, − , u, H, a , g, r ) : ( g · H ) ⊆ Ga := a ( g, r, ( g · H ) , a ) : g · H · g − · g = g · Ha := eq - trans ( a , a ) : g · H = H · g term . . ( S, G, · , e, − , u, H, v ) := λw : B.λg : S.λr : gεG.a : B ⇒ C ⇒ is proven w : C | g : S | r : g εGa := a ( g, r ) : g − ε Ga := w ( g − ) a : g − · H = H · g − a := eq - cong ( λZ : ps ( S ) . ( Z · g ) , a ) : g − · H · g = H · g − · ga := a ( g, r, H, a ) : H · g − · g = Ha := eq - trans ( a , a ) : g − · H · g = Ha := ∧ ( a ) : ( g − · H · g ) ⊆ H term . . ( S, G, · , e, − , u, H, v ) := λw : C.λg : S.λr : gεG.a : C ⇒ D ⇒ is proven w : D var g : S | r : g εG | h : S | r : h εHa := a ( g, h, r , r ) : ( g − · h · g ) ε ( g − · H · g ) a := wgr : ( g − · H · g ) ⊆ Ha := a ( g − · h · g ) a : ( g − · h · g ) ε Ha := λg : S.λr : gεG.λh : S.λr : hεH.a : ∀ g : S. [ gεG ⇒ ∀ h : S. ( hεH ⇒ ( g − · h · g ) ε H )] a := ∧ ( v, a ) : H ⊳ G term . . ( S, G, · , e, − , u, H, v ) := λw : D.a : D ⇒ H ⊳ G ⇒ is proven Proof of Corollary 5.8var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S )Notation A := ∀ g : S. ( gεG ⇒ ( g − · H · g ) = H ) : ∗ p Notation B := ∀ g : S. ( gεG ⇒ ( g · H · g − ) = H ) : ∗ p ORMALIZING GROUPS IN TYPE THEORY 91
Notation C := ∀ g : S. ( gεG ⇒ g · H = H · g ) : ∗ p Notation D := ∀ g : S. ( gεG ⇒ ( g − · H · g ) ⊆ H ) : ∗ p v : H ⊳ Ga := ∧ ( v ) : H Ga := term . . ( S, G, · , e, − , u, H, a ) v : Aa := term . . ( S, G, · , e, − , u, H, a ) a : B term . . ( S, G, · , e, − , u, H, v ) := term . . ( S, G, · , e, − , u, H, a ) a : [ ∀ g : S. ( gεG ⇒ g · H = H · g )]
1) is proven v : H G | w : [ ∀ g : S. ( gεG ⇒ g · H = H · g )] w : Ca := term . . ( S, G, · , e, − , u, H, v ) w : D term . . ( S, G, · , e, − , u, H, v, w ) := term . . ( S, G, · , e, − , u, H, v ) a : H ⊳ G
2) is proven
Proof of Lemma 5.9var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H ⊳ Ga := ∧ ( v ) : H Ga := ∧ ( ∧ ( ∧ ( a ))) : H ⊆ Ga := term . . ( S, G, · , e, − , u, H, a ) : H − = Ha := term . . ( S, G, · , e, − , u, H, a ) : H · H = H var x : S | w : xεGa := term . . ( S, G, · , e, − , u, H, a , x, w ) : ( x · H ) − = H · x − a := Gr ( S, G, · , e, − , u, x, w ) : x − εGa := term . . ( S, G, · , e, − , u, H, v ) x − a : x − · H = H · x − term . . ( S, G, · , e, − , u, H, v, x, w ) := eq - trans ( a , a ) : ( x · H ) − = x − · H
1) is proven var x, y : S | w : xεG | w : yεGa := term . . ( S, G, · , e, − , u, H, v ) yw : y · H = H · ya := eq - cong ( λZ : ps ( S ) . ( x · H · Z ) , a ) : x · H · ( y · H ) = x · H · ( H · y ) a := term . . ( S, G, · , e, − , u, H, a , x, w ) : ( x · H ) ⊆ Ga := term . . ( S, G, · , e, − , u, ( x · H ) , H, a , a , y, w ) : x · H · H · y = x · H · ( H · y ) a := term . . ( S, G, · , e, − , u, H, H, a , a , x, w ) : x · H · H = x · ( H · H ) a := eq - cong ( λZ : ps ( S ) . ( x · Z ) , a ) : x · ( H · H ) = x · Ha := eq - trans ( a , a ) : x · H · H = x · Ha := eq - cong ( λZ : ps ( S ) . ( Z · y ) , a ) : x · H · H · y = x · H · y a := term . . ( S, G, · , e, − , u, H, a , x, y, w , w ) : x · H · y = x · ( H · y ) a := eq - cong ( λZ : ps ( S ) . ( x · Z ) , a ) : x · ( y · H ) = x · ( H · y ) a := term . . ( S, G, · , e, − , u, H, a , x, y, w , w ) : x · y · H = x · ( y · H ) term . . ( S, G, · , e, − , u, H, v, x, y, w , w ) := eq - trans ( eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) , a ): ( x · H ) · ( y · H ) = x · y · H
2) is proven
Proof of Theorem 5.10var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var B, H : ps ( S ) | v : B G | w : H ⊳ Ga := ∧ ( w ) : H Ga := ∧ ( w ) : ∀ g : S. [ gεG ⇒ ∀ h : S. ( hεH ⇒ ( g − · h · g ) ε H )] a := ∧ ( ∧ ( ∧ ( v ))) : B ⊆ Ga := ∧ ( ∧ ( v )) : Closure ( S, B, − ) a := ∧ ( v ) : Closure ( S, B, · ) a := term . . ( S, G, · , e, − , u, B, H, v, a ) : ( B ∩ H ) Ga := λx : S.λr : x ε ( B ∩ H ) . ∧ ( r ) : ( B ∩ H ) ⊆ Ba := term . . ( S, G, · , e, − , u, B, ( B ∩ H ) , v, a , a ) : ( B ∩ H ) B var b : S | r : bεB | h : S | r : h ε ( B ∩ H ) a := ∧ ( r ) : hεBa := ∧ ( r ) : hεHa := a br : bεGa := a ba ha : ( b − · h · b ) ε Ha := a br : b − ε Ba := a ( b − ) a ha : ( b − · h ) ε Ba := a ( b − · h ) a br : ( b − · h · b ) ε Ba := ∧ ( a , a ) : ( b − · h · b ) ε ( B ∩ H ) a := λb : S.λr : bεB.λh : S.λr : h ε ( B ∩ H ) .a : [ ∀ b : S. [ bεB ⇒ ∀ h : S. ( h ε ( B ∩ H ) ⇒ ( b − · h · b ) ε ( B ∩ H )]] term . . ( S, G, · , e, − , u, B, H, v, w ) := ∧ ( a , a ) : ( B ∩ H ) ⊳ B
1) is proven var x : S | r : x ε ( B · H ) r : [ ∃ b : S. ( bεB ∧ x ε ( b · H ))] var b : S | r : bεB ∧ x ε ( b · H ) a := ∧ ( r ) : bεBa := ∧ ( r ) : x ε ( b · H ) ORMALIZING GROUPS IN TYPE THEORY 93 a := a ba : bεGa := term . . ( S, G, · , e, − , u, H, w ) ba : b · H = H · ba := ∧ ( a ) xa : x ε ( H · b ) a := ∧ ( a , a ) : bεB ∧ x ε ( H · b ) a := ∃ ( λt : S. ( tεB ∧ x ε ( H · t )) , b, a ) : x ε ( H · B ) a := ∃ ( r , a ) : x ε ( H · B ) a := λx : S.λr : x ε ( B · H ) .a : ( B · H ) ⊆ ( H · B ) var x : S | r : x ε ( H · B ) r : [ ∃ b : S. ( bεB ∧ x ε ( H · b ))] var b : S | r : bεB ∧ x ε ( H · b ) a := ∧ ( r ) : bεBa := ∧ ( r ) : x ε ( H · b ) a := a ba : bεGa := term . . ( S, G, · , e, − , u, H, w ) ba : ( b · H ) = ( H · b ) a := ∧ ( a ) xa : x ε ( b · H ) a := ∧ ( a , a ) : bεB ∧ x ε ( b · H ) a := ∃ ( λt : S. ( tεB ∧ x ε ( t · H )) , b, a ) : x ε ( B · H ) a := ∃ ( r , a ) : x ε ( B · H ) a := λx : S.λr : x ε ( H · B ) .a : ( H · B ) ⊆ ( B · H ) a := ∧ ( a , a ) : B · H = H · B term . . ( S, G, · , e, − , u, B, H, v, w ) := a : B · H = H · B
2) is proven term . . ( S, G, · , e, − , u, B, H, v, w ) := ∧ ( term . S, G, · , e, − , u, B, H, v, a )) a : ( B · H ) G
3) is proven
Proof of Theorem 5.11var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : Assoc ( S, G, u ) var B, C : ps ( S ) | v : B ⊳ G | w : C ⊳ Ga := ∧ ( v ) : B Ga := ∧ ( ∧ ( ∧ ( a ))) : B ⊆ Ga := ∧ ( ∧ ( a )) : Closure ( S, B, − ) a := ∧ ( a ) : Closure ( S, B, · ) a := ∧ ( w ) : C Ga := ∧ ( ∧ ( ∧ ( a ))) : C ⊆ Ga := ∧ ( ∧ ( a )) : Closure ( S, C, − ) a := ∧ ( a ) : Closure ( S, C, · ) a := term . . ( S, G, · , e, − , u, B, C, a , w ) : ( B · C ) G var g : S | r : gεGa := term . . ( S, G, · , e, − , u, B, C, a , a , g, r ) : g · B · C = g · ( B · C ) a := term . . ( S, G, · , e, − , u, B, v ) gr : g · B = B · ga := term . . ( S, G, · , e, − , u, C, w ) gr : g · C = C · ga := eq - cong ( λZ : ps ( S ) . ( Z · C ) , a ) : g · B · C = B · g · Ca := term . . ( S, G, · , e, − , u, B, C, a , a , g, r ) : B · g · C = B · ( g · C ) a := eq - cong ( λZ : ps ( S ) . ( B · Z ) , a ) : B · ( g · C ) = B · ( C · g ) a := term . . ( S, G, · , e, − , u, B, C, a , a , g, r ) : B · C · g = B · ( C · g ) a := eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) : g · ( B · C ) = B · C · ga := λg : S.λr : gεG.a : [ ∀ g : S. ( gεG ⇒ g · ( B · C ) = ( B · C ) · g )] term . . ( S, G, · , e, − , u, B, C, v, w ) := term . . ( S, G, · , e, − , u, ( B · C ) , a , a ) : ( B · C ) ⊳ G
1) is proven r : [ ∀ g : S. ( gεB ⇒ gεC ⇒ g = e )] var b : S | r : bεB | c : S | r : cεCa := a br : bεGa := a cr : cεGa := a br : b − εBa := a cr : c − εCa := a ( b − ) a : ( b − ) ε Ga := a ( c − ) a : ( c − ) ε Ga := ∧ ( v ) ca br : ( c − · b · c ) ε Ba := ∧ ( w ) ba ( c − ) a : ( b − · c − · b ) ε Ca := a ( b − ) a ( c − · b · c ) a : ( b − · ( c − · b · c )) ε Ba := a ( b − · c − · b ) a cr : ( b − · c − · b · c ) ε Ca := term . . ( S, G, · , e, − , u, c, b, a , a ) : ( c · b ) − = b − · c − a := a ( b − ) a ( c − ) a ba : b − · c − · b = b − · ( c − · b ) a := eq - cong ( λt : S. ( t · c ) , a ) : b − · c − · b · c = b − · ( c − · b ) · ca := Gr ( S, G, · , e, − , u, c − , b, a , a ) : ( c − · b ) ε Ga := a ( b − ) a ( c − · b ) a ca : b − · ( c − · b ) · c = b − · ( c − · b · c ) a := eq - trans ( a , a ) : b − · c − · b · c = b − · ( c − · b · c ) a := eq - subs ( λt : S.tεB, a , a ) : ( b − · c − · b · c ) ε Ba := r ( b − · c − · b · c ) a a : b − · c − · b · c = ea := eq - cong ( λt : S. ( t · b · c ) , a ) : ( c · b ) − · b · c = b − · c − · b · ca := eq - trans ( a , a ) : ( c · b ) − · b · c = e ORMALIZING GROUPS IN TYPE THEORY 95 a := Gr ( S, G, · , e, − , u, b, c, a , a ) : ( b · c ) ε Ga := Gr ( S, G, · , e, − , u, c, b, a , a ) : ( c · b ) ε G Notation x := ( c · b ) : Sa : xεGa : x − · b · c = ea := Gr ( S, G, · , e, − , u, x, a ) : x − ε Ga := Gr ( S, G, · , e, − , u, x, a ) : x · x − = ea := a ( x − ) a ba ca : x − · b · c = x − · ( b · c ) a := eq - cong ( λt : S. ( x · t ) , a ) : x · ( x − · b · c ) = x · ( x − · ( b · c )) a := a xa ( x − ) a ( b · c ) a : x · x − · ( b · c ) = x · ( x − · ( b · c )) a := eq - cong ( λt : S. ( t · ( b · c )) , a ) : x · x − · ( b · c ) = e · ( b · c ) a := Gr ( S, G, · , e, − , u, ( b · c ) , a ) : e · ( b · c ) = b · ca := a ( x − ) a ba ca : x − · b · c = x − · ( b · c ) a := eq - cong ( λt : S. ( x · t ) , a ) : x · ( x − · b · c ) = x · ( x − · ( b · c )) a := eq - cong ( λt : S. ( x · t ) , a ) : x · ( x − · b · c ) = x · ea := Gr ( S, G, · , e, − , u, x, a ) : x · e = x term . . ( S, G, · , e, − , u, B, C, v, w, r , b, c, r , r ):= eq - trans ( eq - trans ( eq - trans ( eq - trans ( eq - trans ( a , a ) , a ) , a ) , a ) , a ) : b · c = c · b
2) is proven
Proof of Theorem 5.13var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H : ps ( S ) | v : H ⊳ Ga := Gr ( S, G, · , e, − , u ) : eεGa := ∧ ( v ) : H Ga := ∧ ( ∧ ( ∧ ( a ))) : H ⊆ Ga := ∧ ( ∧ ( ∧ ( a ))) : eεHa := eq - ref l : E = e · Ha := ∧ ( a , a ) : eεG ∧ E = e · Ha := ∃ ( λt : S. ( tεG ∧ E = t · H ) , e, a ) : E ε ( G/H ) var X : ps ( S ) | r : X ε ( G/H ) r : [ ∃ x : S. ( xεG ∧ X = x · H )] var x : S | r : xεG ∧ X = x · Ha := ∧ ( r ) : xεGa := ∧ ( r ) : X = x · H a := term . . ( S, G, · , e, − , u, H, v, x, e, a , a ) : ( x · H ) · ( e · H ) = x · e · Ha := term . . ( S, G, · , e, − , u, H, v, e, x, a , a ) : ( e · H ) · ( x · H ) = e · x · Ha := Gr ( S, G, · , e, − , u, x, a ) : x · e = xa := Gr ( S, G, · , e, − , u, x, a ) : e · x = xa := eq - cong ( λt : S. ( t · H ) , a ) : x · e · H = x · Ha := eq - cong ( λt : S. ( t · H ) , a ) : e · x · H = x · Ha := eq - trans ( a , a ) : ( x · H ) · E = x · Ha := eq - trans ( a , a ) : E · ( x · H ) = x · Ha := eq - subs ( λU : ps ( S ) . ( U · E = U ) , a , a ) : X · E = Xa := eq - subs ( λU : ps ( S ) . ( E · U = U ) , a , a ) : E · X = Xa := ∧ ( a , a ) : X · E = X ∧ E · X = Xa := term . . ( S, G, · , e, − , u, H, v, x, a ) : ( x · H ) − = x − · Ha := eq - cong ( − , a ) : X − = ( x · H ) − a := eq - trans ( a , a ) : X − = x − · Ha := Gr ( S, G, · , e, − , u, x, a ) : x − εGa := ∧ ( a , a ) : x − εG ∧ X − = x − · Ha := ∃ ( λt : S. ( tεG ∧ X − = t · H ) , x − , a ) : X − ε ( G/H ) a := term . . ( S, G, · , e, − , u, H, v, x, x − , a , a ) : ( x · H ) · ( x − · H ) = x · x − · Ha := term . . ( S, G, · , e, − , u, H, v, x − , x, a , a ) : ( x − · H ) · ( x · H ) = x − · x · Ha := Gr ( S, G, · , e, − , u, x, a ) : x · x − = ea := Gr ( S, G, · , e, − , u, x, a ) : x − · x = ea := eq - cong ( λt : S. ( t · H ) , a ) : x · x − · H = e · Ha := eq - cong ( λt : S. ( t · H ) , a ) : x − · x · H = e · Ha := eq - trans ( a , a ) : ( x · H ) · ( x − · H ) = Ea := eq - trans ( a , a ) : ( x − · H ) · ( x · H ) = Ea := eq - subs ( λU : ps ( S ) . ( x · H · U = E ) , a , a ) : x · H · X − = Ea := eq - subs ( λU : ps ( S ) . ( U · ( x · H ) = E ) , a , a ) : X − · ( x · H ) = Ea := eq - subs ( λU : ps ( S ) . ( U · X − = E ) , a , a ) : X · X − = Ea := eq - subs ( λU : ps ( S ) . ( X − · U = E ) , a , a ) : X − · X = Ea := ∧ ( a , a ) : Inverse ( ps ( S ) , · , E, X, X − ) var Y : ps ( S ) | r : Y ε ( G/H ) r : [ ∃ y : S. ( yεG ∧ Y = y · H )] var y : S | r : yεG ∧ Y = y · Ha := ∧ ( r ) : yεGa := ∧ ( r ) : Y = y · Ha := term . . ( S, G, · , e, − , u, H, v, x, y, a , a ) : ( x · H ) · ( y · H ) = ( x · y ) · H ORMALIZING GROUPS IN TYPE THEORY 97 a := Gr ( S, G, · , e, − , u, x, y, a , a ) : ( x · y ) ε Ga := eq - subs ( λU : ps ( S ) . (( x · H ) · U = ( x · y ) · H ) , a , a ) : ( x · H ) · Y = ( x · y ) · Ha := eq - subs ( λU : ps ( S ) . ( U · Y = ( x · y ) · H ) , a , a ) : X · Y = ( x · y ) · Ha := ∧ ( a , a ) : ( x · y ) ε G ∧ X · Y = ( x · y ) · Ha := ∃ ( λt : S. ( tεG ∧ X · Y = t · H ) , ( x · y ) , a ) : ( X · Y ) ε ( G/H ) var Z : ps ( S ) | r : Z ε ( G/H ) r : [ ∃ z : S. ( zεG ∧ Z = z · H )] var z : S | r : zεG ∧ Z = z · Ha := ∧ ( r ) : zεGa := ∧ ( r ) : Z = z · Ha := term . . ( S, G, · , e, − , u, H, a , x, a ) : ( x · H ) ⊆ Ga := term . . ( S, G, · , e, − , u, H, a , y, a ) : ( y · H ) ⊆ Ga := term . . ( S, G, · , e, − , u, H, a , z, a ) : ( z · H ) ⊆ Ga := eq - subs ( λU : ps ( S ) .U ⊆ G, a , a ) : X ⊆ Ga := eq - subs ( λU : ps ( S ) .U ⊆ G, a , a ) : Y ⊆ Ga := eq - subs ( λU : ps ( S ) .U ⊆ G, a , a ) : Z ⊆ Ga := term . . ( S, G, · , e, − , u, X, Y, Z, a , a , a ) : ( X · Y ) · Z = X · ( Y · Z ) a := ∃ ( r , a ) : ( X · Y ) · Z = X · ( Y · Z ) a := λZ : ps ( S ) .λr : Z ε ( G/H ) .a : [ ∀ Z : ps ( S ) . ( Z ε ( G/H ) ⇒ ( X · Y ) · Z = X · ( Y · Z ))] a := ∃ ( r , a ) : [ ∀ Z : ps ( S ) . ( Z ε ( G/H ) ⇒ ( X · Y ) · Z = X · ( Y · Z ))] a := ∃ ( r , a ) : ( X · Y ) ε ( G/H ) a := λY : ps ( S ) .λr : Y ε ( G/H ) .a : [ ∀ Y : ps ( S ) . ( Y ε ( G/H ) ⇒ ( X · Y ) ε ( G/H ))] a := λY : ps ( S ) .λr : Y ε ( G/H ) .a : [ ∀ Y : ps ( S ) . [ Y ε ( G/H ) ⇒ ∀ Z : ps ( S ) . ( Z ε ( G/H ) ⇒ ( X · Y ) · Z = X · ( Y · Z ))]] a := ∃ ( r , a ): [ ∀ Y : ps ( S ) . [ Y ε ( G/H ) ⇒ ∀ Z : ps ( S ) . ( Z ε ( G/H ) ⇒ ( X · Y ) · Z = X · ( Y · Z ))]] a := ∃ ( r , a ) : [ ∀ Y : ps ( S ) . ( Y ε ( G/H ) ⇒ ( X · Y ) ε ( G/H ))] a := ∃ ( r , a ) : X − ε ( G/H ) a := ∃ ( r , a ) : X · E = X ∧ E · X = Xa := ∃ ( r , a ) : Inverse ( ps ( S ) , · , E, X, X − ) a := λX : ps ( S ) .λr : X ε ( G/H ) .a : Assoc ( ps ( S ) , ( G/H ) , · ) a := λX : ps ( S ) .λr : X ε ( G/H ) .a : Closure ( ps ( S ) , ( G/H ) , · ) a := λX : ps ( S ) .λr : X ε ( G/H ) .a : Closure ( ps ( S ) , ( G/H ) , − ) a := λX : ps ( S ) .λr : X ε ( G/H ) .a : Inverse ( ps ( S ) , ( G/H ) , · , E, − ) a := λX : ps ( S ) .λr : X ε ( G/H ) .a : [ ∀ X : ps ( S ) . ( X ε ( G/H ) ⇒ X · E = X ∧ E · X = X )] a := ∧ ( a , a ) : Identity ( ps ( S ) , ( G/H ) , · , E ) a := ∧ ( ∧ ( a , a ) , a ) : M onoid ( ps ( S ) , ( G/H ) , · , E ) a := ∧ ( a , a ) : Inverse - prop ( ps ( S ) , ( G/H ) , · , E, − ) term . ( S, G, · , e, − , u, H, v ) := ∧ ( a , a ) : Group ( ps ( S ) , ( G/H ) , · , E, − )Proof of Theorem 5.15 var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) var H, B : ps ( S ) | v : H ⊳ G | v : B G | w : H ⊆ Ba := ∧ ( ∧ ( ∧ ( v ))) : B ⊆ Ga := ∧ ( ∧ ( ∧ ( v ))) : eεBa := ∧ ( ∧ ( v )) : Closure ( S, B, − ) a := ∧ ( v ) : Closure ( S, B, · ) a := term . . ( S, G, · , e, − , u, B, H, v , v ) : ( B ∩ H ) ⊳ Ba := λx : s.λr : xε ( B ∩ H ) . ∧ ( r ) : ( B ∩ H ) ⊆ H var x : S | r : xεHa := wxr : xεBa := ∧ ( r, a ) : x ε ( B ∩ H ) a := λx : S.λr : xεH.a : H ⊆ ( B ∩ H ) a := ∧ ( a , a ) : B ∩ H = Ha := eq - subs ( λZ : ps ( S ) .Z ⊳ B, a , a ) : H ⊳ B var X : ps ( S ) | r : X ε ( B/H ) r : [ ∃ x : S. ( xεB ∧ X = x · H )] var x : S | r : xεB ∧ X = x · Ha := ∧ ( r ) : xεBa := ∧ ( r ) : X = x · Ha := a xa : x − εBa := a xa : xεGa := ∧ ( a , a ) : xεG ∧ X = x · Ha := ∃ ( λt : S. ( tεG ∧ X = t · H ) , x, a ) : X ε ( G/H ) a := term . . ( S, G, · , e, − , u, H, v , x, a ) : ( x · H ) − = x − · Ha := eq - cong ( − , a ) : X − = ( x · H ) − a := eq - trans ( a , a ) : X − = x − · Ha := ∧ ( a , a ) : x − εB ∧ X − = x − · Ha := ∃ ( λt : S. ( tεB ∧ X − = t · H ) , x − , a ) : X − ε ( B/H ) var Y : ps ( S ) | r : Y ε ( B/H ) ORMALIZING GROUPS IN TYPE THEORY 99 r : [ ∃ y : S. ( yεB ∧ Y = y · H )] var y : S | r : yεB ∧ Y = y · Ha := ∧ ( r ) : yεBa := ∧ ( r ) : Y = y · Ha := a ya : yεGa := eq - cong ( λZ : ps ( S ) . ( Z · Y ) , a ) : X · Y = x · H · Ya := eq - cong ( λZ : ps ( S ) . ( x · H · Z ) , a ) : x · H · Y = x · H · ( y · H ) a := term . . ( S, G, · , e, − , u, H, v , x, y, a , a ) : ( x · H ) · ( y · H ) = ( x · y ) · Ha := eq - trans ( eq - trans ( a , a ) , a ) : X · Y = ( x · y ) · Ha := a xa ya : ( x · y ) ε Ba := ∧ ( a , a ) : ( x · y ) ε B ∧ X · Y = ( x · y ) · Ha := ∃ ( λt : S. ( tεB ∧ X · Y = t · H ) , ( x · y ) , a ) : ( X · Y ) ε ( B/H ) a := ∃ ( r , a ) : ( X · Y ) ε ( B/H ) a := λY : ps ( S ) .λr : Y ε ( B/H ) .a : [ ∀ Y : ps ( S ) . ( Y ε ( B/H ) ⇒ ( X · Y ) ε ( B/H ))] a := ∃ ( r , a ) : [ ∀ Y : ps ( S ) . ( Y ε ( B/H ) ⇒ ( X · Y ) ε ( B/H ))] a := ∃ ( r , a ) : X − ε ( B/H ) a := ∃ ( r , a ) : X ε ( G/H ) a := λX : ps ( S ) .λr : X ε ( B/H ) .a : ( B/H ) ⊆ ( G/H ) a := λX : ps ( S ) .λr : X ε ( B/H ) .a : Closure ( ps ( S ) , ( B/H ) , − ) a := λX : ps ( S ) .λr : X ε ( B/H ) .a : Closure ( ps ( S ) , ( B/H ) , · ) a := eq - ref l : E = e · Ha := ∧ ( a , a ) : eε B ∧ E = e · Ha := ∃ ( λt : S. ( tεB ∧ E = t · H ) , e, a ) : E ε ( B/H ) a := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : B/H G/H term . . ( S, G, · , e, − , u, H, B, v , v , w ) := ∧ ( a , a ) : ( H ⊳ B ) ∧ ( B/H G/H ) var S : ∗ s | G : ps ( S ) | · : S → S → S | e : S | − : S → S | u : Group ( S, G, · , e, − ) a := Gr ( S, G, · , e, − , u ) : eεG var H : ps ( S ) | v : H ⊳ G | C : ps ( ps ( S )) | w : C G/H
Notation B := { x : S | xεG ∧ ( x · H ) ε C } : ps ( S ) a := ∧ ( v ) : H Ga := ∧ ( ∧ ( ∧ ( a ))) : H ⊆ Ga := ∧ ( ∧ ( ∧ ( w ))) : C ⊆ G/Ha := ∧ ( ∧ ( ∧ ( w ))) : EεCa := ∧ ( ∧ ( w )) : Closure ( ps ( S ) , C, − )
00 F. KACHAPOVA a := ∧ ( w ) : Closure ( ps ( S ) , C, · ) a := ∧ ( a , a ) : eεG ∧ ( e · H ) ε Ca : eεBa := λx : S.λr : xεB. ∧ ( r ) : B ⊆ G var x : S | r : xεBa := ∧ ( r ) : xεGa := ∧ ( r ) : ( x · H ) ε Ca := Gr ( S, G, · , e, − , u, x, a ) : x − εGa := a ( x · H ) a : ( x · H ) − ε Ca := term . . ( S, G, · , e, − , u, H, v, x, a ) : ( x · H ) − = x − · Ha := eq - subs ( λZ : ps ( S ) .ZεC, a , a ) : ( x − · H ) ε Ca := ∧ ( a , a ) : x − εG ∧ ( x − · H ) εCa : x − εB var y : S | r : yεBa := ∧ ( r ) : yεGa := ∧ ( r ) : ( y · H ) ε Ca := Gr ( S, G, · , e, − , u, x, y, a , a ) : ( x · y ) ε Ga := a ( x · H ) a ( y · H ) a : (( x · H ) · ( y · H )) ε Ca := term . . ( S, G, · , e, − , u, H, v, x, y, a , a ) : ( x · H ) · ( y · H ) = ( x · y ) · Ha := eq - subs ( λZ : ps ( S ) .ZεC, a , a ) : (( x · y ) · H ) ε Ca := ∧ ( a , a ) : ( x · y ) ε G ∧ (( x · y ) · H ) ε Ca : ( x · y ) ε Ba := λx : S.λr : xεB.λy : S.λr : yεB.a : Closure ( S, B, · ) a := λx : S.λr : xεB.a : Closure ( S, B, − ) a := ∧ ( ∧ ( ∧ ( a , a ) , a ) , a ) : B Ga := term . . ( S, G, · , e, − , u, H, a ) : e · H = H var x : S | r : xεHa := a xr : xεGa := term . . ( S, G, · , e, − , u, H, a , x, a ) : x · H = H ⇔ xεHa := ∧ ( a ) r : x · H = Ha := eq - trans ( a , a ) : E = x · Ha := eq - subs ( λZ : ps ( S ) .ZεC, a , a ) : ( x · H ) ε Ca := ∧ ( a , a ) : xεG ∧ ( x · H ) ε Ca : xεBa := λx : S.λr : xεH.a : H ⊆ Ba := ∧ ( term . . ( S, G, · , e, − , u, H, B, v, a , a )) : H ⊳ B
ORMALIZING GROUPS IN TYPE THEORY 101 var X : ps ( S ) | r : XεCa := a Xr : X ε ( G/H ) a : [ ∃ x : S. ( xεG ∧ X = x · H )] var x : S | r : xεG ∧ X = x · Ha := ∧ ( r ) : xεGa := ∧ ( r ) : X = x · Ha := eq - subs ( λZ : ps ( S ) .ZεC, a , r ) : ( x · H ) ε Ca := ∧ ( a , a ) : xεG ∧ ( x · H ) ε Ca : xεBa := ∧ ( a , a ) : xεB ∧ X = x · Ha := ∃ ( λt : S. ( tεB ∧ X = t · H ) , x, a ) : X ε ( B/H ) a := ∃ ( a , a ) : X ε ( B/H ) a := λX : ps ( S ) .λr : XεC.a : C ⊆ ( B/H ) var X : ps ( S ) | r : X ε ( B/H ) r : [ ∃ x : S. ( xεB ∧ X = x · H )] var x : S | r : xεB ∧ X = x · Ha := ∧ ( r ) : xεBa := ∧ ( r ) : X = x · Ha := ∧ ( a ) : ( x · H ) ε Ca := eq - subs ( λZ : ps ( S ) .ZεC, a , a ) : XεCa := ∃ ( r , a ) : XεCa := λX : ps ( S ) .λr : X ε ( B/H ) .a : ( B/H ) ⊆ Ca := ∧ ( a , a ) : C = B/H term . . ( S, G, · , e, − , u, H, C, v, w ) := ∧ ( ∧ ( a , a ) , a ) : B G ∧ ( H ⊳ B ) ∧ ( C = B/H )References [1] A. Church. A formulation of the simple theory of types.
Journal of Symbolic Logic , 5(2):56–68, 1940.https://doi.org/10.2307/2266170.[2] T. Coquand and G. Huet. The calculus of constructions.
Information and Computation , 76(2-3):95–120, 1988.[3] F. B. Fitch.
Symbolic Logic . Ronald Press Company, 1952. ISBN: 978-0826030955.[4] J. F. Humphreys.
A Course in Group Theory . Oxford Science Publications, 1996. ISBN: 978-0198534594.[5] S. Ja´skowski.
On the rules of suppositions in formal logic . Oxford University Press, 1967. ISBN: 978-0198243045.[6] F. Kachapova. Formalizing relations in type theory. 2021. https://arxiv.org/abs/2102.08595.[7] P. Martin-L¨of.
Intuitionistic type theory: Notes by Giovanni Sambin . Prometeus Books, 1985. ISBN: 978-8870881059.[8] R. Nederpelt and H. Geuvers.
Type Theory and Formal Proof . Cambridge University Press, 2014. ISBN: 978-1-107-03650-5.[9] R. Nederpelt and F. Kamareddine.
Logical Reasoning: A First Course . College Publications, 2 edition, 2011. ISBN: 978-0954300678.[10] B. Russell.
The Principles of Mathematics . W. W. Norton & Company, 1996. ISBN: 978-0393314045.
Department of Mathematical Sciences, Auckland University of Technology, New Zealand
Email address ::