logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory
from proveit import k, l, m, n, t, defaults
from proveit.logic import InSet
from proveit.numbers import Mult
from proveit.physics.quantum.QPE import ( _m_domain, _t ) # QPE Common Expressions
from proveit.physics.quantum.QPE import (                 # QPE Axioms
    _alpha_m_def, _Psi_def )
from proveit.physics.quantum.QPE import (                 # QPE Theorems
    _phase_is_real, _psi_t_formula, _t_in_natural_pos )
from proveit.physics.quantum.QFT import invFT_on_matrix_elem
In [2]:
%proving _alpha_m_evaluation
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
_alpha_m_evaluation:
(see dependencies)
In [3]:
defaults.assumptions = _alpha_m_evaluation.conditions
defaults.assumptions:
In [4]:
_alpha_m_def
In [5]:
alpha_m_eq_01 = _alpha_m_def.instantiate()
alpha_m_eq_01:  ⊢  
In [6]:
_Psi_def
In [7]:
alpha_m_eq_02 = _Psi_def.sub_right_side_into(alpha_m_eq_01)
alpha_m_eq_02:  ⊢  
In [8]:
_psi_t_formula
In [9]:
# This instantiation requires we know that _t is in NaturalPos
psi_formula = _psi_t_formula.instantiate({t:_t})
psi_formula:  ⊢  
In [10]:
# Auto_simplification here pulls the constant coefficient
# out to the front of the bra-ket; for that auto-simplification
# factoring to work, however, we need the _phase_is_real theorem
# and the correct domain assumption for m.
alpha_m_eq_03 = psi_formula.sub_right_side_into(alpha_m_eq_02)
alpha_m_eq_03:  ⊢  
In [11]:
alpha_m_eq_04 = alpha_m_eq_03.inner_expr().rhs.operands[1].distribute(2)
alpha_m_eq_04:  ⊢  
In [12]:
# for convenience and clarity we name the summation domain
k_domain = psi_formula.rhs.operands[1].domain
k_domain:
In [13]:
invFT_on_matrix_elem
In [14]:
matrix_elem = invFT_on_matrix_elem.instantiate(
    {n:_t, l:m}, assumptions=[InSet(k, k_domain), InSet(m, _m_domain)])
matrix_elem: ,  ⊢  
In [15]:
# We don't want to combine the two different exponentials through auto-simplification.
Mult.change_simplification_directives(combine_all_exponents=False)
alpha_m_eq_05 = (alpha_m_eq_04.inner_expr().rhs.operands[1]
               .summand.operands[1].substitute(matrix_elem))
alpha_m_eq_05:  ⊢  
_alpha_m_evaluation may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [16]:
%qed
proveit.physics.quantum.QPE._alpha_m_evaluation has been proven.
Out[16]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation331, 2, 3  ⊢  
  : , : , :
2instantiation4, 5, 6  ⊢  
  : , :
3instantiation7, 398, 8, 9, 10, 11  ⊢  
  : , : , : , :
4theorem  ⊢  
 proveit.logic.equality.rhs_via_equality
5instantiation306, 12, 13  ⊢  
  : , : , :
6instantiation341, 14, 15*, 16*, 17*  ⊢  
  : , : , :
7axiom  ⊢  
 proveit.core_expr_types.operations.operands_substitution
8instantiation338  ⊢  
  : , :
9instantiation338  ⊢  
  : , :
10instantiation107, 18  ⊢  
  : , :
11instantiation341, 19  ⊢  
  : , : , :
12instantiation306, 20, 21, 22*  ⊢  
  : , : , :
13modus ponens23, 152  ⊢  
14modus ponens24, 25  ⊢  
15instantiation101, 366  ⊢  
  : , :
16instantiation101, 366  ⊢  
  : , :
17instantiation331, 26, 27  ⊢  
  : , : , :
18instantiation196, 28, 29, 30  ⊢  
  : , : , : , :
19modus ponens31, 32  ⊢  
20instantiation306, 33, 34  ⊢  
  : , : , :
21instantiation35, 400  ⊢  
  :
22instantiation331, 36, 37  ⊢  
  : , : , :
23instantiation38, 390, 398, 322, 210, 323, 39*  ⊢  
  : , : , : , : , : , : , : , :
24instantiation140, 390  ⊢  
  : , : , : , : , : , : , :
25generalization40  ⊢  
26instantiation341, 41  ⊢  
  : , : , :
27instantiation331, 42, 43  ⊢  
  : , : , :
28instantiation315, 257, 227, 228, 44*  ⊢  
  : , :
29instantiation341, 45  ⊢  
  : , : , :
30instantiation107, 46  ⊢  
  : , :
31instantiation121, 390  ⊢  
  : , : , : , : , : , :
32generalization47  ⊢  
33instantiation48, 356  ⊢  
  :
34axiom  ⊢  
 proveit.physics.quantum.QPE._Psi_def
35conjecture  ⊢  
 proveit.physics.quantum.QPE._psi_t_formula
36instantiation341, 49  ⊢  
  : , : , :
37instantiation331, 50, 51  ⊢  
  : , : , :
38conjecture  ⊢  
 proveit.physics.quantum.algebra.qmult_distribution_over_summation
39instantiation331, 52, 53  ⊢  
  : , : , :
40instantiation54, 400, 366, 356, 55*,  ⊢  
  : , : , :
41instantiation331, 56, 57  ⊢  
  : , : , :
42instantiation321, 403, 398, 322, 58, 323, 241, 60  ⊢  
  : , : , : , : , : , :
43instantiation179, 322, 398, 403, 323, 59, 241, 60, 61*  ⊢  
  : , : , : , : , : , :
44instantiation331, 62, 63  ⊢  
  : , : , :
45instantiation107, 64  ⊢  
  : , :
46instantiation331, 65, 66  ⊢  
  : , : , :
47instantiation138, 67  ⊢  
  : , : , :
48axiom  ⊢  
 proveit.physics.quantum.QPE._alpha_m_def
49instantiation196, 68, 69, 70  ⊢  
  : , : , : , :
50instantiation331, 71, 72  ⊢  
  : , : , :
51instantiation157, 158, 241, 73, 152, 74*  ⊢  
  : , : , :
52instantiation341, 75, 76*, 77*  ⊢  
  : , : , :
53modus ponens78, 79  ⊢  
54conjecture  ⊢  
 proveit.physics.quantum.QFT.invFT_on_matrix_elem
55instantiation80, 226, 227, 228,  ⊢  
  : , :
56instantiation341, 81  ⊢  
  : , : , :
57instantiation331, 82, 83  ⊢  
  : , : , :
58instantiation338  ⊢  
  : , :
59instantiation338  ⊢  
  : , :
60modus ponens84, 143  ⊢  
61instantiation85, 241, 390, 86*, 87*  ⊢  
  : , : , :
62instantiation341, 88  ⊢  
  : , : , :
63instantiation290, 89  ⊢  
  :
64instantiation90, 202, 361, 91*  ⊢  
  : , :
65instantiation341, 92  ⊢  
  : , : , :
66instantiation184, 361, 93, 370, 316  ⊢  
  : , : , :
67deduction94  ⊢  
68instantiation155, 241, 403, 322, 323, 95  ⊢  
  : , : , : , : , : , :
69instantiation156, 403, 241, 95  ⊢  
  : , : , : , : , :
70instantiation157, 392, 241, 151, 95  ⊢  
  : , : , :
71instantiation331, 96, 97  ⊢  
  : , : , :
72instantiation156, 403, 398, 241, 151, 152  ⊢  
  : , : , : , : , :
73instantiation327  ⊢  
  : , : , :
74instantiation175, 241, 98  ⊢  
  : , :
75modus ponens99, 100  ⊢  
76instantiation101, 366  ⊢  
  : , :
77instantiation101, 366  ⊢  
  : , :
78instantiation102, 390  ⊢  
  : , : , : , :
79generalization103  ⊢  
80conjecture  ⊢  
 proveit.numbers.division.neg_frac_neg_numerator
81modus ponens104, 105  ⊢  
82instantiation341, 106  ⊢  
  : , : , :
83instantiation107, 108  ⊢  
  : , :
84instantiation109  ⊢  
  : , : , :
85conjecture  ⊢  
 proveit.numbers.exponentiation.product_of_posnat_powers
86instantiation360, 241  ⊢  
  :
87conjecture  ⊢  
 proveit.numbers.numerals.decimals.add_1_1
88instantiation184, 361, 354, 232, 316, 110*  ⊢  
  : , : , :
89instantiation278, 361, 111  ⊢  
  : , :
90conjecture  ⊢  
 proveit.numbers.multiplication.mult_neg_left
91instantiation196, 112, 113, 127  ⊢  
  : , : , : , :
92instantiation331, 114, 115  ⊢  
  : , : , :
93instantiation116, 221  ⊢  
  :
94instantiation343, 238, 181,  ⊢  
  : , :
95instantiation190, 261, 244, 187  ⊢  
  : , : , : , :
96instantiation155, 241, 403, 322, 323, 117  ⊢  
  : , : , : , : , : , :
97instantiation150, 398, 392, 322, 206, 151, 323, 118  ⊢  
  : , : , : , : , : , :
98instantiation280, 119, 172  ⊢  
  : , : , :
99instantiation140, 390  ⊢  
  : , : , : , : , : , : , :
100generalization120  ⊢  
101conjecture  ⊢  
 proveit.core_expr_types.conditionals.satisfied_condition_reduction
102axiom  ⊢  
 proveit.linear_algebra.addition.scalar_sum_extends_number_sum
103instantiation335, 238, 176,  ⊢  
  : , :
104instantiation121, 390  ⊢  
  : , :