Metamath Proof Explorer


Theorem sadadd2lem2

Description: The core of the proof of sadadd2 . The intuitive justification for this is that cadd is true if at least two arguments are true, and hadd is true if an odd number of arguments are true, so altogether the result is n x. A where n is the number of true arguments, which is equivalently obtained by adding together one A for each true argument, on the right side. (Contributed by Mario Carneiro, 8-Sep-2016)

Ref Expression
Assertion sadadd2lem2 AifhaddφψχA0+ifcaddφψχ2A0=ifφA0+ifψA0+ifχA0

Proof

Step Hyp Ref Expression
1 0cn 0
2 ifcl A0ifψA0
3 1 2 mpan2 AifψA0
4 3 ad2antrr AχφifψA0
5 simpll AχφA
6 4 5 5 add12d AχφifψA0+A+A=A+ifψA0+A
7 5 4 5 addassd AχφA+ifψA0+A=A+ifψA0+A
8 6 7 eqtr4d AχφifψA0+A+A=A+ifψA0+A
9 pm5.501 φψφψ
10 9 adantl Aχφψφψ
11 10 bicomd Aχφφψψ
12 11 ifbid AχφifφψA0=ifψA0
13 animorrl Aχφφψ
14 iftrue φψifφψ2A0=2A
15 13 14 syl Aχφifφψ2A0=2A
16 5 2timesd Aχφ2A=A+A
17 15 16 eqtrd Aχφifφψ2A0=A+A
18 12 17 oveq12d AχφifφψA0+ifφψ2A0=ifψA0+A+A
19 iftrue φifφA0=A
20 19 adantl AχφifφA0=A
21 20 oveq1d AχφifφA0+ifψA0=A+ifψA0
22 21 oveq1d AχφifφA0+ifψA0+A=A+ifψA0+A
23 8 18 22 3eqtr4d AχφifφψA0+ifφψ2A0=ifφA0+ifψA0+A
24 iffalse ¬φifφA0=0
25 24 adantl Aχ¬φifφA0=0
26 25 oveq1d Aχ¬φifφA0+ifψA0=0+ifψA0
27 3 ad2antrr Aχ¬φifψA0
28 27 addlidd Aχ¬φ0+ifψA0=ifψA0
29 26 28 eqtrd Aχ¬φifφA0+ifψA0=ifψA0
30 29 oveq1d Aχ¬φifφA0+ifψA0+A=ifψA0+A
31 2cnd A2
32 id AA
33 31 32 mulcld A2A
34 33 addlidd A0+2A=2A
35 2times A2A=A+A
36 34 35 eqtrd A0+2A=A+A
37 36 adantr Aψ0+2A=A+A
38 iftrue ψifψ0A=0
39 38 adantl Aψifψ0A=0
40 iftrue ψifψ2A0=2A
41 40 adantl Aψifψ2A0=2A
42 39 41 oveq12d Aψifψ0A+ifψ2A0=0+2A
43 iftrue ψifψA0=A
44 43 adantl AψifψA0=A
45 44 oveq1d AψifψA0+A=A+A
46 37 42 45 3eqtr4d Aψifψ0A+ifψ2A0=ifψA0+A
47 simpl A¬ψA
48 0cnd A¬ψ0
49 47 48 addcomd A¬ψA+0=0+A
50 iffalse ¬ψifψ0A=A
51 50 adantl A¬ψifψ0A=A
52 iffalse ¬ψifψ2A0=0
53 52 adantl A¬ψifψ2A0=0
54 51 53 oveq12d A¬ψifψ0A+ifψ2A0=A+0
55 iffalse ¬ψifψA0=0
56 55 adantl A¬ψifψA0=0
57 56 oveq1d A¬ψifψA0+A=0+A
58 49 54 57 3eqtr4d A¬ψifψ0A+ifψ2A0=ifψA0+A
59 46 58 pm2.61dan Aifψ0A+ifψ2A0=ifψA0+A
60 59 ad2antrr Aχ¬φifψ0A+ifψ2A0=ifψA0+A
61 ifnot if¬ψA0=ifψ0A
62 nbn2 ¬φ¬ψφψ
63 62 adantl Aχ¬φ¬ψφψ
64 63 ifbid Aχ¬φif¬ψA0=ifφψA0
65 61 64 eqtr3id Aχ¬φifψ0A=ifφψA0
66 biorf ¬φψφψ
67 66 adantl Aχ¬φψφψ
68 67 ifbid Aχ¬φifψ2A0=ifφψ2A0
69 65 68 oveq12d Aχ¬φifψ0A+ifψ2A0=ifφψA0+ifφψ2A0
70 30 60 69 3eqtr2rd Aχ¬φifφψA0+ifφψ2A0=ifφA0+ifψA0+A
71 23 70 pm2.61dan AχifφψA0+ifφψ2A0=ifφA0+ifψA0+A
72 hadrot haddχφψhaddφψχ
73 had1 χhaddχφψφψ
74 72 73 bitr3id χhaddφψχφψ
75 74 adantl Aχhaddφψχφψ
76 75 ifbid AχifhaddφψχA0=ifφψA0
77 cad1 χcaddφψχφψ
78 77 adantl Aχcaddφψχφψ
79 78 ifbid Aχifcaddφψχ2A0=ifφψ2A0
80 76 79 oveq12d AχifhaddφψχA0+ifcaddφψχ2A0=ifφψA0+ifφψ2A0
81 iftrue χifχA0=A
82 81 adantl AχifχA0=A
83 82 oveq2d AχifφA0+ifψA0+ifχA0=ifφA0+ifψA0+A
84 71 80 83 3eqtr4d AχifhaddφψχA0+ifcaddφψχ2A0=ifφA0+ifψA0+ifχA0
85 19 adantl A¬χφifφA0=A
86 85 oveq1d A¬χφifφA0+ifψA0=A+ifψA0
87 44 oveq2d AψA+ifψA0=A+A
88 37 42 87 3eqtr4d Aψifψ0A+ifψ2A0=A+ifψA0
89 53 56 eqtr4d A¬ψifψ2A0=ifψA0
90 51 89 oveq12d A¬ψifψ0A+ifψ2A0=A+ifψA0
91 88 90 pm2.61dan Aifψ0A+ifψ2A0=A+ifψA0
92 91 ad2antrr A¬χφifψ0A+ifψ2A0=A+ifψA0
93 9 adantl A¬χφψφψ
94 93 notbid A¬χφ¬ψ¬φψ
95 df-xor φψ¬φψ
96 94 95 bitr4di A¬χφ¬ψφψ
97 96 ifbid A¬χφif¬ψA0=ifφψA0
98 61 97 eqtr3id A¬χφifψ0A=ifφψA0
99 ibar φψφψ
100 99 adantl A¬χφψφψ
101 100 ifbid A¬χφifψ2A0=ifφψ2A0
102 98 101 oveq12d A¬χφifψ0A+ifψ2A0=ifφψA0+ifφψ2A0
103 86 92 102 3eqtr2rd A¬χφifφψA0+ifφψ2A0=ifφA0+ifψA0
104 simplll A¬χ¬φψA
105 0cnd A¬χ¬φ¬ψ0
106 104 105 ifclda A¬χ¬φifψA0
107 0cnd A¬χ¬φ0
108 106 107 addcomd A¬χ¬φifψA0+0=0+ifψA0
109 62 adantl A¬χ¬φ¬ψφψ
110 109 con1bid A¬χ¬φ¬φψψ
111 95 110 bitrid A¬χ¬φφψψ
112 111 ifbid A¬χ¬φifφψA0=ifψA0
113 simpr A¬χ¬φ¬φ
114 113 intnanrd A¬χ¬φ¬φψ
115 iffalse ¬φψifφψ2A0=0
116 114 115 syl A¬χ¬φifφψ2A0=0
117 112 116 oveq12d A¬χ¬φifφψA0+ifφψ2A0=ifψA0+0
118 24 adantl A¬χ¬φifφA0=0
119 118 oveq1d A¬χ¬φifφA0+ifψA0=0+ifψA0
120 108 117 119 3eqtr4d A¬χ¬φifφψA0+ifφψ2A0=ifφA0+ifψA0
121 103 120 pm2.61dan A¬χifφψA0+ifφψ2A0=ifφA0+ifψA0
122 had0 ¬χhaddχφψφψ
123 72 122 bitr3id ¬χhaddφψχφψ
124 123 adantl A¬χhaddφψχφψ
125 124 ifbid A¬χifhaddφψχA0=ifφψA0
126 cad0 ¬χcaddφψχφψ
127 126 adantl A¬χcaddφψχφψ
128 127 ifbid A¬χifcaddφψχ2A0=ifφψ2A0
129 125 128 oveq12d A¬χifhaddφψχA0+ifcaddφψχ2A0=ifφψA0+ifφψ2A0
130 iffalse ¬χifχA0=0
131 130 oveq2d ¬χifφA0+ifψA0+ifχA0=ifφA0+ifψA0+0
132 ifcl A0ifφA0
133 1 132 mpan2 AifφA0
134 133 3 addcld AifφA0+ifψA0
135 134 addridd AifφA0+ifψA0+0=ifφA0+ifψA0
136 131 135 sylan9eqr A¬χifφA0+ifψA0+ifχA0=ifφA0+ifψA0
137 121 129 136 3eqtr4d A¬χifhaddφψχA0+ifcaddφψχ2A0=ifφA0+ifψA0+ifχA0
138 84 137 pm2.61dan AifhaddφψχA0+ifcaddφψχ2A0=ifφA0+ifψA0+ifχA0