logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory

from proveit import defaults, Lambda
from proveit import a, b, t
from proveit.logic import Exists, Equals
from proveit.numbers import NaturalPos
from proveit.physics.quantum.QPE import _precision_guarantee
In [2]:
%proving qpe_precision_guarantee
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
qpe_precision_guarantee:
(see dependencies)
In [3]:
defaults.assumptions = qpe_precision_guarantee.all_conditions()
defaults.assumptions:
In [4]:
_precision_guarantee

Perform literal generalization, converting literals to quantified variables and their definining axioms into conditions

In [5]:
(_precision_guarantee.generalize(
            qpe_precision_guarantee.instance_param_lists(),
            conditions=qpe_precision_guarantee.all_conditions())
       .inner_expr().instance_expr.instance_expr.instance_expr.with_wrapping()
       .inner_expr().instance_expr.instance_expr.with_wrapping())
qpe_precision_guarantee has been proven.  Now simply execute "%qed".
In [6]:
%qed
proveit.physics.quantum.QPE.qpe_precision_guarantee has been proven.
Out[6]:
 step typerequirementsstatement
0literal generalization1  ⊢  
1conjecture  ⊢  
 proveit.physics.quantum.QPE._precision_guarantee