logo

Theorems (or conjectures) for the theory of proveit.logic.sets.unification

In [1]:
import proveit
# Prepare this notebook for defining the theorems of a theory:
%theorems_notebook # Keep this at the top following 'import proveit'.
from proveit.logic import Forall, And, Or, Equals, InSet, NotInSet, Union, SubsetEq
from proveit import A, B, S, m, x
from proveit.core_expr_types import A_1_to_m
from proveit.logic.sets import x_in_any_A, x_notin_all_A, each_A_in_S
from proveit.numbers import NaturalPos
%begin theorems
Defining theorems for theory 'proveit.logic.sets.unification'
Subsequent end-of-cell assignments will define theorems
'%end theorems' will finalize the definitions
In [2]:
membership_unfolding = Forall(m, Forall((x, A_1_to_m), x_in_any_A, 
                                       conditions=[InSet(x, Union(A_1_to_m))]),
                             domain=NaturalPos)
membership_unfolding (conjecture without proof):

In [3]:
membership_folding = Forall(m, Forall((x, A_1_to_m), InSet(x, Union(A_1_to_m)), 
                                     conditions=[x_in_any_A]),
                           domain=NaturalPos)
membership_folding (conjecture without proof):

In [4]:
nonmembership_equiv = Forall(m, Forall((x, A_1_to_m), 
                                      Equals(NotInSet(x, Union(A_1_to_m)),
                                             x_notin_all_A)),
                            domain=NaturalPos)
nonmembership_equiv (conjecture without proof):

In [5]:
nonmembership_folding = Forall(m, Forall((x, A_1_to_m), 
                                        NotInSet(x, Union(A_1_to_m)),
                                        conditions=[x_notin_all_A]),
                              domain=NaturalPos)
nonmembership_folding (conjecture without proof):

In [6]:
union_inclusion = Forall(m, Forall((A_1_to_m, S), 
                                   SubsetEq(Union(A_1_to_m), S),
                                   conditions=[each_A_in_S]),
                         domain=NaturalPos)
union_inclusion (conjecture without proof):

In [7]:
%end theorems
These theorems may now be imported from the theory package: proveit.logic.sets.unification