@@ -172,6 +172,76 @@ LEMMA CardSumMonotonic ==
172172 < 1 > q . QED BY < 1 > 1 , < 1 > 2 , CardSumType
173173
174174
175+ LEMMA CardSumMonotonicOpGE ==
176+ ASSUME
177+ NEW S , IsFiniteSet ( S ) ,
178+ NEW op1 ( _ ) , \A s \in S : op1 ( s ) \in Nat ,
179+ NEW op2 ( _ ) , \A s \in S : op2 ( s ) \in Nat ,
180+ \A s \in S : op2 ( s ) >= op1 ( s )
181+ PROVE
182+ CardSum ( S , op2 ) >= CardSum ( S , op1 )
183+ PROOF
184+ < 1 > DEFINE P ( s ) == s \subseteq S => CardSum ( s , op2 ) >= CardSum ( s , op1 )
185+ < 1 > HIDE DEF P
186+ < 1 > SUFFICES P ( S ) BY DEF P
187+ < 1 > 1 . IsFiniteSet ( S ) OBVIOUS
188+ < 1 > 2 . P ( { } ) BY CardSumEmpty , Isa DEF P
189+ < 1 > 3 . ASSUME
190+ NEW CONSTANT T ,
191+ NEW CONSTANT x ,
192+ IsFiniteSet ( T ) ,
193+ P ( T ) ,
194+ x \notin T
195+ PROVE P ( T \cup { x } )
196+ < 2 > SUFFICES ASSUME
197+ T \cup { x } \subseteq S
198+ PROVE CardSum ( T \cup { x } , op2 ) >= CardSum ( T \cup { x } , op1 )
199+ BY DEF P
200+ < 2 > 2 . \A s \in T : op1 ( s ) \in Nat OBVIOUS
201+ < 2 > 3 . \A s \in T : op2 ( s ) \in Nat OBVIOUS
202+ < 2 > 4 . op1 ( x ) \in Nat OBVIOUS
203+ < 2 > 5 . op2 ( x ) \in Nat OBVIOUS
204+ < 2 > 6 . CardSum ( T \cup { x } , op1 ) = CardSum ( T , op1 ) + op1 ( x ) BY ONLY < 1 > 3 , < 2 > 2 , < 2 > 4 , CardSumAddElem , Isa
205+ < 2 > 7 . CardSum ( T \cup { x } , op2 ) = CardSum ( T , op2 ) + op2 ( x ) BY ONLY < 1 > 3 , < 2 > 3 , < 2 > 5 , CardSumAddElem , Isa
206+ < 2 > 8 . CardSum ( T , op2 ) >= CardSum ( T , op1 ) BY < 1 > 3 DEF P
207+ < 2 > 9 . op2 ( x ) >= op1 ( x ) BY < 1 > 3
208+ < 2 > 10 . CardSum ( T , op1 ) \in Nat BY CardSumType , < 1 > 3 , < 2 > 2
209+ < 2 > 11 . CardSum ( T , op2 ) \in Nat BY CardSumType , < 1 > 3 , < 2 > 3
210+ < 2 > q . QED BY < 2 > 4 , < 2 > 5 , < 2 > 6 , < 2 > 7 , < 2 > 8 , < 2 > 9 , < 2 > 10 , < 2 > 11
211+ < 1 > q . QED BY ONLY FS_Induction , < 1 > 1 , < 1 > 2 , < 1 > 3 , Isa
212+
213+
214+ LEMMA CardSumMonotonicOpGT ==
215+ ASSUME
216+ NEW S , IsFiniteSet ( S ) ,
217+ NEW op1 ( _ ) , \A s \in S : op1 ( s ) \in Nat ,
218+ NEW op2 ( _ ) , \A s \in S : op2 ( s ) \in Nat ,
219+ \A s \in S : op2 ( s ) >= op1 ( s ) ,
220+ \E s \in S : op2 ( s ) > op1 ( s )
221+ PROVE
222+ CardSum ( S , op2 ) > CardSum ( S , op1 )
223+ PROOF
224+ < 1 > 1 . PICK x \in S : op2 ( x ) > op1 ( x ) OBVIOUS
225+ < 1 > DEFINE T == S \ { x }
226+ < 1 > HIDE DEF T
227+ < 1 > 2 . S = T \cup { x } BY < 1 > 1 DEF T
228+ < 1 > 3 . IsFiniteSet ( T ) BY FS_Singleton , FS_Difference DEF T
229+ < 1 > 4 . \A t \in T : op1 ( t ) \in Nat BY DEF T
230+ < 1 > 5 . \A t \in T : op2 ( t ) \in Nat BY DEF T
231+ < 1 > 6 . CardSum ( T , op2 ) >= CardSum ( T , op1 )
232+ < 2 > 4 . \A t \in T : op2 ( t ) >= op1 ( t ) BY DEF T
233+ < 2 > q . QED BY ONLY CardSumMonotonicOpGE , < 1 > 3 , < 1 > 4 , < 1 > 5 , < 2 > 4 , Isa
234+ < 1 > 7 . op1 ( x ) \in Nat OBVIOUS
235+ < 1 > 8 . op2 ( x ) \in Nat OBVIOUS
236+ < 1 > 9 . x \notin T BY DEF T
237+ < 1 > 10 . CardSum ( T \cup { x } , op1 ) = CardSum ( T , op1 ) + op1 ( x ) BY ONLY < 1 > 3 , < 1 > 4 , < 1 > 9 , < 1 > 7 , CardSumAddElem , Isa
238+ < 1 > 11 . CardSum ( T \cup { x } , op2 ) = CardSum ( T , op2 ) + op2 ( x ) BY ONLY < 1 > 3 , < 1 > 5 , < 1 > 9 , < 1 > 8 , CardSumAddElem , Isa
239+ < 1 > 12 . op2 ( x ) > op1 ( x ) BY < 1 > 1
240+ < 1 > 13 . CardSum ( T , op1 ) \in Nat BY CardSumType , < 1 > 3 , < 1 > 4
241+ < 1 > 14 . CardSum ( T , op2 ) \in Nat BY CardSumType , < 1 > 3 , < 1 > 5
242+ < 1 > q . QED BY < 1 > 1 , < 1 > 2 , < 1 > 6 , < 1 > 7 , < 1 > 8 , < 1 > 10 , < 1 > 11 , < 1 > 12 , < 1 > 13 , < 1 > 14
243+
244+
175245LEMMA CardSumZero ==
176246 ASSUME NEW S , IsFiniteSet ( S ) ,
177247 NEW op ( _ ) , \A e \in S : op ( e ) \in Nat ,
@@ -380,6 +450,49 @@ PROOF
380450 < 1 > 1 . IsFiniteSet ( S \cup { e } ) BY FS_Union , FS_Singleton
381451 < 1 > q . QED BY < 1 > 1 , CardSumMonotonic , MapThenSumSetDefined
382452
453+ LEMMA MapThenSumSetMonotonicOpGE ==
454+ ASSUME
455+ NEW S , IsFiniteSet ( S ) ,
456+ NEW op1 ( _ ) , \A s \in S : op1 ( s ) \in Nat ,
457+ NEW op2 ( _ ) , \A s \in S : op2 ( s ) \in Nat ,
458+ \A s \in S : op2 ( s ) >= op1 ( s )
459+ PROVE
460+ MapThenSumSet ( op2 , S ) >= MapThenSumSet ( op1 , S )
461+ PROOF
462+ < 1 > DEFINE
463+ C1 == CardSum ( S , op1 )
464+ C2 == CardSum ( S , op2 )
465+ M1 == MapThenSumSet ( op1 , S )
466+ M2 == MapThenSumSet ( op2 , S )
467+ < 1 > HIDE DEF C1 , C2 , M1 , M2
468+ < 1 > SUFFICES M2 >= M1 BY DEF M1 , M2
469+ < 1 > 1 . C2 >= C1 BY CardSumMonotonicOpGE , Isa DEF C1 , C2
470+ < 1 > 2 . M1 = C1 BY MapThenSumSetDefined , Isa DEF M1 , C1
471+ < 1 > 3 . M2 = C2 BY MapThenSumSetDefined , Isa DEF M2 , C2
472+ < 1 > q . QED BY < 1 > 1 , < 1 > 2 , < 1 > 3
473+
474+ LEMMA MapThenSumSetMonotonicOpGT ==
475+ ASSUME
476+ NEW S , IsFiniteSet ( S ) ,
477+ NEW op1 ( _ ) , \A s \in S : op1 ( s ) \in Nat ,
478+ NEW op2 ( _ ) , \A s \in S : op2 ( s ) \in Nat ,
479+ \A s \in S : op2 ( s ) >= op1 ( s ) ,
480+ \E s \in S : op2 ( s ) > op1 ( s )
481+ PROVE
482+ MapThenSumSet ( op2 , S ) > MapThenSumSet ( op1 , S )
483+ PROOF
484+ < 1 > DEFINE
485+ C1 == CardSum ( S , op1 )
486+ C2 == CardSum ( S , op2 )
487+ M1 == MapThenSumSet ( op1 , S )
488+ M2 == MapThenSumSet ( op2 , S )
489+ < 1 > HIDE DEF C1 , C2 , M1 , M2
490+ < 1 > SUFFICES M2 > M1 BY DEF M1 , M2
491+ < 1 > 1 . C2 > C1 BY CardSumMonotonicOpGT , Isa DEF C1 , C2
492+ < 1 > 2 . M1 = C1 BY MapThenSumSetDefined , Isa DEF M1 , C1
493+ < 1 > 3 . M2 = C2 BY MapThenSumSetDefined , Isa DEF M2 , C2
494+ < 1 > q . QED BY < 1 > 1 , < 1 > 2 , < 1 > 3
495+
383496LEMMA MapThenSumSetZero ==
384497 ASSUME NEW S , IsFiniteSet ( S ) ,
385498 NEW op ( _ ) , \A e \in S : op ( e ) \in Nat ,
0 commit comments