Metamath Proof Explorer


Theorem iscgra

Description: Property for two angles ABC and DEF to be congruent. This is a modified version of the definition 11.3 of Schwabhauser p. 95. where the number of constructed points has been reduced to two. We chose this version rather than the textbook version because it is shorter and therefore simpler to work with. Theorem dfcgra2 shows that those definitions are indeed equivalent. (Contributed by Thierry Arnoux, 31-Jul-2020)

Ref Expression
Hypotheses iscgra.p P=BaseG
iscgra.i I=ItvG
iscgra.k K=hl𝒢G
iscgra.g φG𝒢Tarski
iscgra.a φAP
iscgra.b φBP
iscgra.c φCP
iscgra.d φDP
iscgra.e φEP
iscgra.f φFP
Assertion iscgra φ⟨“ABC”⟩𝒢G⟨“DEF”⟩xPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF

Proof

Step Hyp Ref Expression
1 iscgra.p P=BaseG
2 iscgra.i I=ItvG
3 iscgra.k K=hl𝒢G
4 iscgra.g φG𝒢Tarski
5 iscgra.a φAP
6 iscgra.b φBP
7 iscgra.c φCP
8 iscgra.d φDP
9 iscgra.e φEP
10 iscgra.f φFP
11 simpl a=⟨“ABC”⟩b=⟨“DEF”⟩a=⟨“ABC”⟩
12 eqidd a=⟨“ABC”⟩b=⟨“DEF”⟩x=x
13 simpr a=⟨“ABC”⟩b=⟨“DEF”⟩b=⟨“DEF”⟩
14 13 fveq1d a=⟨“ABC”⟩b=⟨“DEF”⟩b1=⟨“DEF”⟩1
15 eqidd a=⟨“ABC”⟩b=⟨“DEF”⟩y=y
16 12 14 15 s3eqd a=⟨“ABC”⟩b=⟨“DEF”⟩⟨“xb1y”⟩=⟨“x⟨“DEF”⟩1y”⟩
17 11 16 breq12d a=⟨“ABC”⟩b=⟨“DEF”⟩a𝒢G⟨“xb1y”⟩⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩
18 14 fveq2d a=⟨“ABC”⟩b=⟨“DEF”⟩Kb1=K⟨“DEF”⟩1
19 13 fveq1d a=⟨“ABC”⟩b=⟨“DEF”⟩b0=⟨“DEF”⟩0
20 12 18 19 breq123d a=⟨“ABC”⟩b=⟨“DEF”⟩xKb1b0xK⟨“DEF”⟩1⟨“DEF”⟩0
21 13 fveq1d a=⟨“ABC”⟩b=⟨“DEF”⟩b2=⟨“DEF”⟩2
22 15 18 21 breq123d a=⟨“ABC”⟩b=⟨“DEF”⟩yKb1b2yK⟨“DEF”⟩1⟨“DEF”⟩2
23 17 20 22 3anbi123d a=⟨“ABC”⟩b=⟨“DEF”⟩a𝒢G⟨“xb1y”⟩xKb1b0yKb1b2⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩xK⟨“DEF”⟩1⟨“DEF”⟩0yK⟨“DEF”⟩1⟨“DEF”⟩2
24 23 2rexbidv a=⟨“ABC”⟩b=⟨“DEF”⟩xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2xPyP⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩xK⟨“DEF”⟩1⟨“DEF”⟩0yK⟨“DEF”⟩1⟨“DEF”⟩2
25 eqid ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2=ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
26 24 25 brab2a ⟨“ABC”⟩ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2⟨“DEF”⟩⟨“ABC”⟩P0..^3⟨“DEF”⟩P0..^3xPyP⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩xK⟨“DEF”⟩1⟨“DEF”⟩0yK⟨“DEF”⟩1⟨“DEF”⟩2
27 eqidd φxPyPx=x
28 s3fv1 EP⟨“DEF”⟩1=E
29 9 28 syl φ⟨“DEF”⟩1=E
30 29 adantr φxPyP⟨“DEF”⟩1=E
31 eqidd φxPyPy=y
32 27 30 31 s3eqd φxPyP⟨“x⟨“DEF”⟩1y”⟩=⟨“xEy”⟩
33 32 breq2d φxPyP⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩⟨“ABC”⟩𝒢G⟨“xEy”⟩
34 30 fveq2d φxPyPK⟨“DEF”⟩1=KE
35 s3fv0 DP⟨“DEF”⟩0=D
36 8 35 syl φ⟨“DEF”⟩0=D
37 36 adantr φxPyP⟨“DEF”⟩0=D
38 27 34 37 breq123d φxPyPxK⟨“DEF”⟩1⟨“DEF”⟩0xKED
39 s3fv2 FP⟨“DEF”⟩2=F
40 10 39 syl φ⟨“DEF”⟩2=F
41 40 adantr φxPyP⟨“DEF”⟩2=F
42 31 34 41 breq123d φxPyPyK⟨“DEF”⟩1⟨“DEF”⟩2yKEF
43 33 38 42 3anbi123d φxPyP⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩xK⟨“DEF”⟩1⟨“DEF”⟩0yK⟨“DEF”⟩1⟨“DEF”⟩2⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF
44 43 2rexbidva φxPyP⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩xK⟨“DEF”⟩1⟨“DEF”⟩0yK⟨“DEF”⟩1⟨“DEF”⟩2xPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF
45 44 anbi2d φ⟨“ABC”⟩P0..^3⟨“DEF”⟩P0..^3xPyP⟨“ABC”⟩𝒢G⟨“x⟨“DEF”⟩1y”⟩xK⟨“DEF”⟩1⟨“DEF”⟩0yK⟨“DEF”⟩1⟨“DEF”⟩2⟨“ABC”⟩P0..^3⟨“DEF”⟩P0..^3xPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF
46 26 45 bitrid φ⟨“ABC”⟩ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2⟨“DEF”⟩⟨“ABC”⟩P0..^3⟨“DEF”⟩P0..^3xPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF
47 elex G𝒢TarskiGV
48 simpl p=Pk=Kp=P
49 48 oveq1d p=Pk=Kp0..^3=P0..^3
50 49 eleq2d p=Pk=Kap0..^3aP0..^3
51 49 eleq2d p=Pk=Kbp0..^3bP0..^3
52 50 51 anbi12d p=Pk=Kap0..^3bp0..^3aP0..^3bP0..^3
53 simpr p=Pk=Kk=K
54 53 fveq1d p=Pk=Kkb1=Kb1
55 54 breqd p=Pk=Kxkb1b0xKb1b0
56 54 breqd p=Pk=Kykb1b2yKb1b2
57 55 56 3anbi23d p=Pk=Ka𝒢g⟨“xb1y”⟩xkb1b0ykb1b2a𝒢g⟨“xb1y”⟩xKb1b0yKb1b2
58 48 57 rexeqbidv p=Pk=Kypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2yPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2
59 48 58 rexeqbidv p=Pk=Kxpypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2xPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2
60 52 59 anbi12d p=Pk=Kap0..^3bp0..^3xpypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2aP0..^3bP0..^3xPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2
61 1 3 60 sbcie2s g=G[˙Baseg/p]˙[˙hl𝒢g/k]˙ap0..^3bp0..^3xpypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2aP0..^3bP0..^3xPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2
62 61 opabbidv g=Gab|[˙Baseg/p]˙[˙hl𝒢g/k]˙ap0..^3bp0..^3xpypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2=ab|aP0..^3bP0..^3xPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2
63 fveq2 g=G𝒢g=𝒢G
64 63 breqd g=Ga𝒢g⟨“xb1y”⟩a𝒢G⟨“xb1y”⟩
65 64 3anbi1d g=Ga𝒢g⟨“xb1y”⟩xKb1b0yKb1b2a𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
66 65 2rexbidv g=GxPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
67 66 anbi2d g=GaP0..^3bP0..^3xPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
68 67 opabbidv g=Gab|aP0..^3bP0..^3xPyPa𝒢g⟨“xb1y”⟩xKb1b0yKb1b2=ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
69 62 68 eqtrd g=Gab|[˙Baseg/p]˙[˙hl𝒢g/k]˙ap0..^3bp0..^3xpypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2=ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
70 df-cgra 𝒢=gVab|[˙Baseg/p]˙[˙hl𝒢g/k]˙ap0..^3bp0..^3xpypa𝒢g⟨“xb1y”⟩xkb1b0ykb1b2
71 ovex P0..^3V
72 71 71 xpex P0..^3×P0..^3V
73 opabssxp ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2P0..^3×P0..^3
74 72 73 ssexi ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2V
75 69 70 74 fvmpt GV𝒢G=ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
76 4 47 75 3syl φ𝒢G=ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2
77 76 breqd φ⟨“ABC”⟩𝒢G⟨“DEF”⟩⟨“ABC”⟩ab|aP0..^3bP0..^3xPyPa𝒢G⟨“xb1y”⟩xKb1b0yKb1b2⟨“DEF”⟩
78 5 6 7 s3cld φ⟨“ABC”⟩WordP
79 s3len ⟨“ABC”⟩=3
80 1 fvexi PV
81 3nn0 30
82 wrdmap PV30⟨“ABC”⟩WordP⟨“ABC”⟩=3⟨“ABC”⟩P0..^3
83 80 81 82 mp2an ⟨“ABC”⟩WordP⟨“ABC”⟩=3⟨“ABC”⟩P0..^3
84 78 79 83 sylanblc φ⟨“ABC”⟩P0..^3
85 8 9 10 s3cld φ⟨“DEF”⟩WordP
86 s3len ⟨“DEF”⟩=3
87 wrdmap PV30⟨“DEF”⟩WordP⟨“DEF”⟩=3⟨“DEF”⟩P0..^3
88 80 81 87 mp2an ⟨“DEF”⟩WordP⟨“DEF”⟩=3⟨“DEF”⟩P0..^3
89 85 86 88 sylanblc φ⟨“DEF”⟩P0..^3
90 84 89 jca φ⟨“ABC”⟩P0..^3⟨“DEF”⟩P0..^3
91 90 biantrurd φxPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF⟨“ABC”⟩P0..^3⟨“DEF”⟩P0..^3xPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF
92 46 77 91 3bitr4d φ⟨“ABC”⟩𝒢G⟨“DEF”⟩xPyP⟨“ABC”⟩𝒢G⟨“xEy”⟩xKEDyKEF