# Theorems (or conjectures) for the theory of proveit.logic.sets.intersection¶

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, Equals, InSet, NotInSet, Intersect
from proveit import m, x
from proveit.core_expr_types import A_1_to_m
from proveit.logic.sets import x_in_every_A, x_notin_some_A
from proveit.numbers import NaturalPos
%begin theorems

Defining theorems for theory 'proveit.logic.sets.intersection'
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_every_A,
conditions=[InSet(x, Intersect(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, Intersect(A_1_to_m)),
conditions=[x_in_every_A]),
domain=NaturalPos)

membership_folding (conjecture without proof):

In [4]:
nonmembership_equiv = Forall(m, Forall((x, A_1_to_m),
Equals(NotInSet(x, Intersect(A_1_to_m)),
x_notin_some_A)),
domain=NaturalPos)

nonmembership_equiv (conjecture without proof):

In [5]:
nonmembership_folding = Forall(m, Forall((x, A_1_to_m),
NotInSet(x, Intersect(A_1_to_m)),
conditions=[x_notin_some_A]),
domain=NaturalPos)

nonmembership_folding (conjecture without proof):

In [6]:
%end theorems

These theorems may now be imported from the theory package: proveit.logic.sets.intersection