(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
)))