Metamath Proof Explorer


Definition df-angmgm

Description: Definition of the angle addition magma. See following theorems for better readable properties. Because the textbook's definition of angle congruence does not consider orientation (cf. cgraswap ) , our notion of angle does not include reflex angles (angles larger than a straight angle). Therefore, like with NN0 , at this point, we can only build amagma , which is e.g.not isomorphic with the rotation group SO(2) . (Contributed by Thierry Arnoux, 20-Jul-2026)

Ref Expression
Assertion df-angmgm Could not format assertion : No typesetting found for |- AngMgm = ( g e. _V |-> [_ ( Base ` g ) / p ]_ [_ { d e. ( p ^m ( 0 ..^ 3 ) ) | ( ( d ` 0 ) =/= ( d ` 1 ) /\ ( d ` 1 ) =/= ( d ` 2 ) ) } / a ]_ ( { <. ( Base ` ndx ) , a >. , <. ( +g ` ndx ) , ( e e. a , f e. a |-> if ( ( e ` 0 ) e. ( ( e ` 1 ) ( LineG ` g ) ( e ` 2 ) ) , <" ( f ` 0 ) ( f ` 1 ) ( iota_ z e. p ( <" ( f ` 2 ) ( f ` 1 ) z "> ( cgrA ` g ) e /\ ( ( f ` 1 ) ( dist ` g ) z ) = ( ( e ` 1 ) ( dist ` g ) ( e ` 0 ) ) ) ) "> , <" ( e ` 0 ) ( e ` 1 ) ( iota_ z e. p ( <" ( e ` 2 ) ( e ` 1 ) z "> ( cgrA ` g ) f /\ ( ( e ` 1 ) ( dist ` g ) z ) = ( ( f ` 1 ) ( dist ` g ) ( f ` 0 ) ) /\ ( ( ( e ` 1 ) ( LineG ` g ) ( e ` 2 ) ) i^i ( z ( Itv ` g ) ( e ` 0 ) ) ) =/= (/) ) ) "> ) ) >. , <. ( le ` ndx ) , ( leA ` g ) >. } /s ( cgrA ` g ) ) ) with typecode |-

Detailed syntax breakdown

Step Hyp Ref Expression
0 cangmgm Could not format AngMgm : No typesetting found for class AngMgm with typecode class
1 vg setvar g
2 cvv class V
3 cbs class Base
4 1 cv setvar g
5 4 3 cfv class Base g
6 vp setvar p
7 vd setvar d
8 6 cv setvar p
9 cmap class 𝑚
10 cc0 class 0
11 cfzo class ..^
12 c3 class 3
13 10 12 11 co class 0 ..^ 3
14 8 13 9 co class p 0 ..^ 3
15 7 cv setvar d
16 10 15 cfv class d 0
17 c1 class 1
18 17 15 cfv class d 1
19 16 18 wne wff d 0 d 1
20 c2 class 2
21 20 15 cfv class d 2
22 18 21 wne wff d 1 d 2
23 19 22 wa wff d 0 d 1 d 1 d 2
24 23 7 14 crab class d p 0 ..^ 3 | d 0 d 1 d 1 d 2
25 va setvar a
26 cnx class ndx
27 26 3 cfv class Base ndx
28 25 cv setvar a
29 27 28 cop class Base ndx a
30 cplusg class + 𝑔
31 26 30 cfv class + ndx
32 ve setvar e
33 vf setvar f
34 32 cv setvar e
35 10 34 cfv class e 0
36 17 34 cfv class e 1
37 clng class Line 𝒢
38 4 37 cfv class Line 𝒢 g
39 20 34 cfv class e 2
40 36 39 38 co class e 1 Line 𝒢 g e 2
41 35 40 wcel wff e 0 e 1 Line 𝒢 g e 2
42 33 cv setvar f
43 10 42 cfv class f 0
44 17 42 cfv class f 1
45 vz setvar z
46 20 42 cfv class f 2
47 45 cv setvar z
48 46 44 47 cs3 class ⟨“ f 2 f 1 z ”⟩
49 ccgra class 𝒢
50 4 49 cfv class 𝒢 g
51 48 34 50 wbr wff ⟨“ f 2 f 1 z ”⟩ 𝒢 g e
52 cds class dist
53 4 52 cfv class dist g
54 44 47 53 co class f 1 dist g z
55 36 35 53 co class e 1 dist g e 0
56 54 55 wceq wff f 1 dist g z = e 1 dist g e 0
57 51 56 wa wff ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0
58 57 45 8 crio class ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0
59 43 44 58 cs3 class ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩
60 39 36 47 cs3 class ⟨“ e 2 e 1 z ”⟩
61 60 42 50 wbr wff ⟨“ e 2 e 1 z ”⟩ 𝒢 g f
62 36 47 53 co class e 1 dist g z
63 44 43 53 co class f 1 dist g f 0
64 62 63 wceq wff e 1 dist g z = f 1 dist g f 0
65 citv class Itv
66 4 65 cfv class Itv g
67 47 35 66 co class z Itv g e 0
68 40 67 cin class e 1 Line 𝒢 g e 2 z Itv g e 0
69 c0 class
70 68 69 wne wff e 1 Line 𝒢 g e 2 z Itv g e 0
71 61 64 70 w3a wff ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0
72 71 45 8 crio class ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0
73 35 36 72 cs3 class ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩
74 41 59 73 cif class if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩
75 32 33 28 28 74 cmpo class e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩
76 31 75 cop class + ndx e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩
77 cple class le
78 26 77 cfv class ndx
79 cleag class 𝒢
80 4 79 cfv class 𝒢 g
81 78 80 cop class ndx 𝒢 g
82 29 76 81 ctp class Base ndx a + ndx e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩ ndx 𝒢 g
83 cqus class / 𝑠
84 82 50 83 co class Base ndx a + ndx e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩ ndx 𝒢 g / 𝑠 𝒢 g
85 25 24 84 csb class d p 0 ..^ 3 | d 0 d 1 d 1 d 2 / a Base ndx a + ndx e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩ ndx 𝒢 g / 𝑠 𝒢 g
86 6 5 85 csb class Base g / p d p 0 ..^ 3 | d 0 d 1 d 1 d 2 / a Base ndx a + ndx e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩ ndx 𝒢 g / 𝑠 𝒢 g
87 1 2 86 cmpt class g V Base g / p d p 0 ..^ 3 | d 0 d 1 d 1 d 2 / a Base ndx a + ndx e a , f a if e 0 e 1 Line 𝒢 g e 2 ⟨“ f 0 f 1 ι z p | ⟨“ f 2 f 1 z ”⟩ 𝒢 g e f 1 dist g z = e 1 dist g e 0 ”⟩ ⟨“ e 0 e 1 ι z p | ⟨“ e 2 e 1 z ”⟩ 𝒢 g f e 1 dist g z = f 1 dist g f 0 e 1 Line 𝒢 g e 2 z Itv g e 0 ”⟩ ndx 𝒢 g / 𝑠 𝒢 g
88 0 87 wceq Could not format AngMgm = ( g e. _V |-> [_ ( Base ` g ) / p ]_ [_ { d e. ( p ^m ( 0 ..^ 3 ) ) | ( ( d ` 0 ) =/= ( d ` 1 ) /\ ( d ` 1 ) =/= ( d ` 2 ) ) } / a ]_ ( { <. ( Base ` ndx ) , a >. , <. ( +g ` ndx ) , ( e e. a , f e. a |-> if ( ( e ` 0 ) e. ( ( e ` 1 ) ( LineG ` g ) ( e ` 2 ) ) , <" ( f ` 0 ) ( f ` 1 ) ( iota_ z e. p ( <" ( f ` 2 ) ( f ` 1 ) z "> ( cgrA ` g ) e /\ ( ( f ` 1 ) ( dist ` g ) z ) = ( ( e ` 1 ) ( dist ` g ) ( e ` 0 ) ) ) ) "> , <" ( e ` 0 ) ( e ` 1 ) ( iota_ z e. p ( <" ( e ` 2 ) ( e ` 1 ) z "> ( cgrA ` g ) f /\ ( ( e ` 1 ) ( dist ` g ) z ) = ( ( f ` 1 ) ( dist ` g ) ( f ` 0 ) ) /\ ( ( ( e ` 1 ) ( LineG ` g ) ( e ` 2 ) ) i^i ( z ( Itv ` g ) ( e ` 0 ) ) ) =/= (/) ) ) "> ) ) >. , <. ( le ` ndx ) , ( leA ` g ) >. } /s ( cgrA ` g ) ) ) : No typesetting found for wff AngMgm = ( g e. _V |-> [_ ( Base ` g ) / p ]_ [_ { d e. ( p ^m ( 0 ..^ 3 ) ) | ( ( d ` 0 ) =/= ( d ` 1 ) /\ ( d ` 1 ) =/= ( d ` 2 ) ) } / a ]_ ( { <. ( Base ` ndx ) , a >. , <. ( +g ` ndx ) , ( e e. a , f e. a |-> if ( ( e ` 0 ) e. ( ( e ` 1 ) ( LineG ` g ) ( e ` 2 ) ) , <" ( f ` 0 ) ( f ` 1 ) ( iota_ z e. p ( <" ( f ` 2 ) ( f ` 1 ) z "> ( cgrA ` g ) e /\ ( ( f ` 1 ) ( dist ` g ) z ) = ( ( e ` 1 ) ( dist ` g ) ( e ` 0 ) ) ) ) "> , <" ( e ` 0 ) ( e ` 1 ) ( iota_ z e. p ( <" ( e ` 2 ) ( e ` 1 ) z "> ( cgrA ` g ) f /\ ( ( e ` 1 ) ( dist ` g ) z ) = ( ( f ` 1 ) ( dist ` g ) ( f ` 0 ) ) /\ ( ( ( e ` 1 ) ( LineG ` g ) ( e ` 2 ) ) i^i ( z ( Itv ` g ) ( e ` 0 ) ) ) =/= (/) ) ) "> ) ) >. , <. ( le ` ndx ) , ( leA ` g ) >. } /s ( cgrA ` g ) ) ) with typecode wff