(def-theorem sb-symmetry-obl "forall(h_0:[nn,sets[ind_2]],h_1:[nn,sets[ind_1]], forall(u_0:nn, #(if(u_0=0, dom{g}, lambda(dummy_$0:sets[ind_1], if(#(dummy_$0), image{f,dummy_$0}, ?sets[ind_2]))(h_1(u_0-1)))) implies if(u_0=0, dom{g}, lambda(dummy_$0:sets[ind_1], if(#(dummy_$0), image{f,dummy_$0}, ?sets[ind_2]))(h_1(u_0-1)))=h_0(u_0)) and forall(u_0:nn, #(if(u_0=0, dom{f}, lambda(dummy_$1:sets[ind_2], if(#(dummy_$1), image{g,dummy_$1}, ?sets[ind_1]))(h_0(u_0-1)))) implies if(u_0=0, dom{f}, lambda(dummy_$1:sets[ind_2], if(#(dummy_$1), image{g,dummy_$1}, ?sets[ind_1]))(h_0(u_0-1)))=h_1(u_0)) implies forall(u_0:nn,#(b%seq(u_0)) implies b%seq(u_0)=h_0(u_0)) and forall(u_0:nn,#(a%seq(u_0)) implies a%seq(u_0)=h_1(u_0)))" lemma (theory schroeder-bernstein-theory) (proof ( (assume-theorem schroeder-bernstein-set-functions-strong-minimality_schroeder-bernstein-theory) direct-and-antecedent-inference-strategy (backchain "with(p:prop, forall(h_0:[nn,sets[ind_1]],h_1:[nn,sets[ind_2]], p))") direct-inference auto-instantiate-existential (backchain "with(p:prop, forall(h_0:[nn,sets[ind_1]],h_1:[nn,sets[ind_2]], p))") direct-inference auto-instantiate-existential )))
(def-theorem sb->gt2-obl-1 "forall(v:[ind_2,ind_1],u:[ind_1,ind_2],b:sets[ind_2],a:sets[ind_1], nonempty_indic_q{a} and nonempty_indic_q{b} and dom{u}=a and dom{v}=b and ran{u} subseteq b and ran{v} subseteq a and injective_on_q{u,a} and injective_on_q{v,b} implies forall(x_$0:ind_1, if_form(x_$0 in a, #(u(x_$0)) implies u(x_$0) in b, not(#(u(x_$0))))))" lemma (theory generic-theory-2) (proof ( direct-and-antecedent-inference-strategy (apply-macete-with-minor-premises tr%element-of-a-subset-is-an-element) auto-instantiate-existential (apply-macete-with-minor-premises range-domain-membership) (apply-macete-with-minor-premises domain-membership-iff-defined) (apply-macete-with-minor-premises rev%domain-membership-iff-defined) (backchain "with(a:sets[ind_1],u:[ind_1,ind_2],dom{u}=a)") )))
(def-theorem sb->gt2-obl-2 "forall(v:[ind_2,ind_1],u:[ind_1,ind_2],b:sets[ind_2],a:sets[ind_1], nonempty_indic_q{a} and nonempty_indic_q{b} and dom{u}=a and dom{v}=b and ran{u} subseteq b and ran{v} subseteq a and injective_on_q{u,a} and injective_on_q{v,b} implies forall(x_$0:ind_2, if_form(x_$0 in b, #(v(x_$0)) implies v(x_$0) in a, not(#(v(x_$0))))))" lemma (theory generic-theory-2) (proof ( direct-and-antecedent-inference-strategy (apply-macete-with-minor-premises tr%element-of-a-subset-is-an-element) auto-instantiate-existential (apply-macete-with-minor-premises tr%range-domain-membership) (apply-macete-with-minor-premises tr%domain-membership-iff-defined) (apply-macete-with-minor-premises tr%rev%domain-membership-iff-defined) (backchain "with(b:sets[ind_2],v:[ind_2,ind_1],dom{v}=b)") )))
(def-theorem sb->gt2-obl-3 "forall(v:[ind_2,ind_1],u:[ind_1,ind_2],b:sets[ind_2],a:sets[ind_1], nonempty_indic_q{a} and nonempty_indic_q{b} and dom{u}=a and dom{v}=b and ran{u} subseteq b and ran{v} subseteq a and injective_on_q{u,a} and injective_on_q{v,b} implies forall(x_0:ind_1,x_0 in a implies #(u(x_0))))" lemma (theory generic-theory-2) (proof ( direct-and-antecedent-inference-strategy (apply-macete-with-minor-premises rev%domain-membership-iff-defined) (backchain "with(a:sets[ind_1],u:[ind_1,ind_2],dom{u}=a)") )))
(def-theorem sb->gt2-obl-4 "forall(v:[ind_2,ind_1],u:[ind_1,ind_2],b:sets[ind_2],a:sets[ind_1], nonempty_indic_q{a} and nonempty_indic_q{b} and dom{u}=a and dom{v}=b and ran{u} subseteq b and ran{v} subseteq a and injective_on_q{u,a} and injective_on_q{v,b} implies forall(x_0:ind_2,x_0 in b implies #(v(x_0))))" lemma (theory generic-theory-2) (proof ( direct-and-antecedent-inference-strategy (apply-macete-with-minor-premises tr%rev%domain-membership-iff-defined) (backchain "with(b:sets[ind_2],v:[ind_2,ind_1],dom{v}=b)") )))
(def-theorem sb->gt2-obl-5 "forall(v:[ind_2,ind_1],u:[ind_1,ind_2],b:sets[ind_2],a:sets[ind_1], nonempty_indic_q{a} and nonempty_indic_q{b} and dom{u}=a and dom{v}=b and ran{u} subseteq b and ran{v} subseteq a and injective_on_q{u,a} and injective_on_q{v,b} implies forall(x_1,x_2:ind_1, x_1 in a and x_2 in a implies (u(x_1)=u(x_2) implies x_1=x_2)))" lemma (theory generic-theory-2) (proof ( direct-and-antecedent-inference-strategy (backchain "with(u:[ind_1,ind_2],a:sets[ind_1],injective_on_q{u,a})") direct-inference )))
(def-theorem sb->gt2-obl-6 "forall(v:[ind_2,ind_1],u:[ind_1,ind_2],b:sets[ind_2],a:sets[ind_1], nonempty_indic_q{a} and nonempty_indic_q{b} and dom{u}=a and dom{v}=b and ran{u} subseteq b and ran{v} subseteq a and injective_on_q{u,a} and injective_on_q{v,b} implies forall(x_1,x_2:ind_2, x_1 in b and x_2 in b implies (v(x_1)=v(x_2) implies x_1=x_2)))" lemma (theory generic-theory-2) (proof ( direct-and-antecedent-inference-strategy (backchain "with(v:[ind_2,ind_1],b:sets[ind_2],injective_on_q{v,b})") direct-inference )))