logo
In [1]:
import proveit
from proveit import defaults
from proveit.logic import And
from proveit import a, b, i, n, x, y
from proveit.core_expr_types.tuples import tuple_eq_via_elem_eq
from proveit.core_expr_types.operations  import operands_substitution
theory = proveit.Theory() # the theorem's theory
In [2]:
%proving multi_substitution
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
multi_substitution:
(see dependencies)
In [3]:
defaults.assumptions = multi_substitution.all_conditions()
defaults.assumptions:
In [4]:
operands_substitution
In [5]:
operands_substitution.instantiate({y:y})
multi_substitution may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [6]:
%qed
proveit.logic.equality.multi_substitution has been proven.
Out[6]: