(def-constant max%on%set "lambda(s:sets[ind_1],f:[ind_1,rr], iota(r:rr, forsome(x:ind_1, x in s and r = f(x)) and forall(x:ind_1, x in s implies (not(#(f(x))) or f(x) <= r))))" (theory generic-theory-1))
(def-theorem max%on%set-bigger-than-members "forall(s:sets[ind_1],f:[ind_1,rr],x:ind_1, x in s and #(f(x)) and #(max%on%set(s,f)) implies f(x) <= max%on%set(s,f))" (theory generic-theory-1) (proof ( direct-and-antecedent-inference-strategy (incorporate-antecedent "with(f:[ind_1,rr],s:sets[ind_1],#(max%on%set(s,f)));") (unfold-single-defined-constant-globally max%on%set) direct-inference (eliminate-defined-iota-expression 0 w) (backchain "with(p:prop,p and p);") direct-inference )))
(def-theorem disj-commutativity "forall(a,b:sets[uu], a disj b iff b disj a)" (theory indicators) (usages transportable-macete) (proof ( insistent-direct-and-antecedent-inference-strategy (instantiate-universal-antecedent "with(b,a:sets[uu],a disj b);" ("x")) (instantiate-universal-antecedent "with(a,b:sets[uu],b disj a);" ("x")) )))
(def-theorem union-disjointness-left "forall(a,b,c:sets[uu], (a union b) disj c iff (a disj c and b disj c))" (theory indicators) (usages transportable-macete) (proof ( direct-inference simplify-insistently direct-and-antecedent-inference-strategy (block (script-comment "`direct-and-antecedent-inference-strategy' at (0 0)") insistent-direct-inference (instantiate-universal-antecedent "with(p:prop,p);" ("x")) simplify simplify) (block (script-comment "`direct-and-antecedent-inference-strategy' at (0 1)") insistent-direct-inference (instantiate-universal-antecedent "with(p:prop,forall(x_$0:uu,p and p or not(p)));" ("x")) simplify simplify) (instantiate-universal-antecedent "with(c,a:sets[uu],a disj c);" ("x_$0")) (instantiate-universal-antecedent "with(c,b:sets[uu],b disj c);" ("x_$0")) )))
(def-theorem union-disjointness-right "forall(a,b,c:sets[uu], a disj (b union c) iff (a disj b and a disj c))" (theory indicators) (usages transportable-macete) (proof ( (force-substitution "a disj b union c" "(b union c) disj a" (0)) (block (script-comment "`force-substitution' at (0)") (apply-macete-with-minor-premises union-disjointness-left) (apply-macete-locally disj-commutativity (0) "(b disj a and c disj a)")) (block (script-comment "`force-substitution' at (1)") (move-to-ancestor 1) (apply-macete-locally disj-commutativity (0) "a disj b union c")) )))