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

from proveit import defaults, Lambda
from proveit import a, b, c, e, f, l, m, x, y, A, B, C, N, Q, X, Omega
from proveit.logic import Or, Forall, InSet, Union, Disjoint
from proveit.logic.sets.functions.injections import subset_injection
from proveit.logic.sets.functions.bijections import bijection_transitivity
from proveit.numbers import (zero, one, Add, Neg, greater, Less)
from proveit.numbers.modular import interval_left_shift_bijection
from proveit.statistics import prob_of_disjoint_events_is_prob_sum
from proveit.physics.quantum import NumKet
from proveit.physics.quantum.QPE import (
    _t, _two_pow_t, _two_pow_t__minus_one,  _t_in_natural_pos,
    _two_pow_t_minus_one_is_nat_pos, _Omega,
    _b_floor, _best_floor_is_int, _best_floor_def,
    _alpha_m_def, _full_domain, _neg_domain, _pos_domain,
    _modabs_in_full_domain_simp, ModAdd, _sample_space_bijection,
    _Omega_is_sample_space, _outcome_prob, _fail_def,
    _fail_sum_prob_conds_equiv_lemma)
In [2]:
%proving _fail_sum
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
_fail_sum:
(see dependencies)
In [3]:
defaults.assumptions = _fail_sum.all_conditions()
defaults.assumptions:
In [4]:
e_in_domain = defaults.assumptions[0]
e_in_domain:
In [5]:
defaults.preserved_exprs = {e_in_domain.domain.upper_bound.operands[0]}
defaults.preserved_exprs:

Start with the $P_{\textrm{fail}}$ definition

In [6]:
fail_def_inst = _fail_def.instantiate()
fail_def_inst:  ⊢  

We will next translate from $m \in \{0~\ldotp \ldotp~2^{t} - 1\}$ to $b_f \oplus l$ with $l \in \{-2^{t-1} + 1 ~\ldotp \ldotp~2^{t-1}\}$

In [7]:
lower_bound = _neg_domain.lower_bound
lower_bound:
In [8]:
upper_bound = _pos_domain.upper_bound
upper_bound:
In [9]:
interval_left_shift_bijection
In [10]:
lambda_map_bijection = interval_left_shift_bijection.instantiate(
    {a:lower_bound, b:upper_bound, c:_b_floor, N:_two_pow_t, x:l})
lambda_map_bijection:  ⊢  

Use the $\oplus$ notation within kets (but not otherwise, for simplification purposed):

In [11]:
b_modadd_l__def = ModAdd(_b_floor, l).definition(assumptions=[InSet(l, _full_domain)])
b_modadd_l__def:  ⊢  
In [12]:
defaults.replacements = [b_modadd_l__def.derive_reversed().substitution(NumKet(b_modadd_l__def.rhs, _t))]
defaults.replacements:
In [13]:
transformed_fail_def = fail_def_inst.inner_expr().rhs.transform(
    lambda_map_bijection.element, lambda_map_bijection.domain.domain, _Omega)
transformed_fail_def:  ⊢  

Proceed to split the probability of this event into the sum of two disjoint possibilities

Our goal will be to apply the following theorem:

In [14]:
prob_of_disjoint_events_is_prob_sum

Prove the $|l|_{\textrm{mod}~2^t} > e$ condition for either the positive or negative domain for simplification purposes

In [15]:
condition = transformed_fail_def.rhs.non_domain_condition()
condition:
In [16]:
neg_domain_assumptions = [InSet(l, _neg_domain), *_fail_sum.all_conditions()]
neg_domain_assumptions:
In [17]:
pos_domain_assumptions = [InSet(l, _pos_domain), *_fail_sum.all_conditions()]
pos_domain_assumptions:
In [18]:
_modabs_in_full_domain_simp
In [19]:
absmod_posdomain_simp = _modabs_in_full_domain_simp.instantiate(
    assumptions=pos_domain_assumptions)
absmod_posdomain_simp: ,  ⊢  
In [20]:
absmod_negdomain_simp = _modabs_in_full_domain_simp.instantiate(
    assumptions=neg_domain_assumptions)
absmod_negdomain_simp: ,  ⊢  
In [21]:
pos_cond_eval = absmod_posdomain_simp.sub_left_side_into(
    greater(l, e), assumptions=pos_domain_assumptions).evaluation()
pos_cond_eval: ,  ⊢  
In [22]:
neg_cond_eval = absmod_negdomain_simp.sub_left_side_into(
    greater(Neg(l), e), assumptions=neg_domain_assumptions).evaluation()
neg_cond_eval: ,  ⊢  

Prove the proper injective mapping condition then apply prob_of_disjoint_events_is_prob_sum

In [23]:
circuit_map = Lambda(l, transformed_fail_def.rhs.instance_expr)
circuit_map:
In [24]:
lambda_map_bijection
In [25]:
_sample_space_bijection
In [26]:
trans_bijection = lambda_map_bijection.apply_transitivity(_sample_space_bijection)
trans_bijection:  ⊢  
In [27]:
prob_eq_sum1 = prob_of_disjoint_events_is_prob_sum.instantiate(
    {Omega:_Omega, A:_neg_domain, B:_pos_domain, C:Union(_neg_domain, _pos_domain), 
     X:_full_domain, f:circuit_map, Q:Lambda(l, condition), x:l},
    replacements=[pos_cond_eval, neg_cond_eval]).with_wrap_after_operator()
prob_eq_sum1:  ⊢  

Compute the event probabilities in terms of summing outcome probabilities

In [28]:
outcome_prob_pos = _outcome_prob.instantiate({m:ModAdd(_b_floor, l)}, assumptions=pos_domain_assumptions)
outcome_prob_pos: ,  ⊢  
In [29]:
outcome_prob_neg = _outcome_prob.instantiate({m:ModAdd(_b_floor, l)}, assumptions=neg_domain_assumptions)
outcome_prob_neg: ,  ⊢  
In [30]:
subset_injection
In [31]:
subset_injection.instantiate({A:_pos_domain, B:_full_domain, C:_Omega, f:trans_bijection.element})
In [32]:
subset_injection.instantiate({A:_neg_domain, B:_full_domain, C:_Omega, f:trans_bijection.element})
In [33]:
prob_eq_sum2 = prob_eq_sum1.inner_expr().rhs.operands[0].compute(_Omega, replacements=[outcome_prob_neg])
prob_eq_sum2:  ⊢  
In [34]:
prob_eq_sum3 = prob_eq_sum2.inner_expr().rhs.operands[1].compute(_Omega, replacements=[outcome_prob_pos])
prob_eq_sum3:  ⊢  

That logical equivalence of conditions is handled in a separate lemma, _fail_sum_prob_conds_equiv_lemma:

In [35]:
_fail_sum_prob_conds_equiv_lemma
In [36]:
# Here we explicitly preserve the -(e+1) expression; otherwise it becomes (-e-1) and
# later won't match up with the expression to be substituted for
conditions_equiv = (
    _fail_sum_prob_conds_equiv_lemma.instantiate(preserve_expr=Neg(Add(e, one)))
    .instantiate(preserve_expr=Neg(Add(e, one)), sideeffect_automation=False))
conditions_equiv:  ⊢  
In [37]:
prob_eq_sum4 = prob_eq_sum3.inner_expr().lhs.operand.body
prob_eq_sum4:
In [38]:
prob_eq_sum4 = prob_eq_sum3.inner_expr().lhs.operand.body.substitute_condition(
    conditions_equiv, preserve_all=True, sideeffect_automation=False)
prob_eq_sum4:  ⊢  
_fail_sum may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [39]:
%qed
proveit.physics.quantum.QPE._fail_sum has been proven.
Out[39]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation412, 2, 5  ⊢  
  : , : , :
2instantiation363, 3, 4, 5  ⊢  
  : , : , : , :
3instantiation337, 6, 7  ⊢  
  : , : , :
4instantiation337, 8, 9  ⊢  
  : , : , :
5instantiation378, 10  ⊢  
  : , : , :
6instantiation11, 428  ⊢  
  :
7instantiation12, 45, 13, 226, 224*, 14*  ⊢  
  : , : , : , : , : , : , : , :
8instantiation337, 15, 16  ⊢  
  : , : , :
9modus ponens17, 18  ⊢  
10instantiation378, 19  ⊢  
  : , : , :
11axiom  ⊢  
 proveit.physics.quantum.QPE._fail_def
12conjecture  ⊢  
 proveit.statistics.prob_of_all_events_transformation
13instantiation88, 20  ⊢  
  : , :
14instantiation21, 349, 446, 351, 22, 79, 23, 24*  ⊢  
  : , : , : , : , : , :
15instantiation337, 25, 26  ⊢  
  : , : , :
16instantiation44, 45, 27, 28*, 43*, 29*  ⊢  
  : , : , : , : , :
17instantiation53, 391  ⊢  
  : , : , : , : , : , :
18generalization30  ⊢  
19modus ponens31, 32  ⊢  
20instantiation118, 227  ⊢  
  : , : , :
21conjecture  ⊢  
 proveit.numbers.modular.redundant_mod_elimination_in_sum_in_modabs
22instantiation452, 439, 33  ⊢  
  : , : , :
23instantiation452, 34, 35  ⊢  
  : , : , :
24instantiation331, 36, 37  ⊢  
  : , : , :
25instantiation38, 45, 39, 40, 41, 71, 42*, 48*, 43*  ⊢  
  : , : , : , : , : , : , : , :
26instantiation44, 45, 46, 47*, 48*, 49*  ⊢  
  : , : , : , : , :
27instantiation69, 64, 71  ⊢  
  : , : , : , :
28instantiation72, 50,  ⊢  
  :
29instantiation74, 446, 349, 351  ⊢  
  : , : , : , : , :
30instantiation51, 52  ⊢  
  : , : , :
31instantiation53, 391  ⊢  
  : , : , : , : , : , :
32generalization54  ⊢  
33instantiation452, 447, 55  ⊢  
  : , : , :
34conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_pos_within_real_pos
35instantiation452, 56, 254  ⊢  
  : , : , :
36instantiation348, 349, 454, 446, 351, 57, 59, 60, 58  ⊢  
  : , : , : , : , : , :
37instantiation182, 59, 60, 61  ⊢  
  : , : , :
38conjecture  ⊢  
 proveit.statistics.prob_of_disjoint_events_is_prob_sum
39instantiation62, 430, 63, 70, 64  ⊢  
  : , : , :
40instantiation352  ⊢  
  :
41instantiation65, 340, 341, 357, 444, 66  ⊢  
  : , : , : , :
42instantiation67, 68,  ⊢  
  :
43instantiation74, 446, 349, 351  ⊢  
  : , : , : , : , :
44conjecture  ⊢  
 proveit.statistics.prob_of_all_as_sum
45conjecture  ⊢  
 proveit.physics.quantum.QPE._Omega_is_sample_space
46instantiation69, 70, 71  ⊢  
  : , : , : , :
47instantiation72, 73,  ⊢  
  :
48instantiation74, 446, 349, 351  ⊢  
  : , : , : , : , :
49instantiation74, 446, 349, 351  ⊢  
  : , : , : , : , :
50instantiation90, 302, 75,  ⊢  
  : , :
51axiom  ⊢  
 proveit.core_expr_types.conditionals.condition_replacement
52instantiation76, 428  ⊢  
  :
53axiom  ⊢  
 proveit.core_expr_types.lambda_maps.lambda_substitution
54instantiation77, 78  ⊢  
  : , : , :
55instantiation443, 302, 303  ⊢  
  : , :
56conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.nat_pos_within_rational_pos
57instantiation372  ⊢  
  : , :
58instantiation452, 432, 79  ⊢  
  : , : , :
59instantiation452, 432, 94  ⊢  
  : , : , :
60instantiation452, 432, 80  ⊢  
  : , : , :
61instantiation352  ⊢  
  :
62conjecture  ⊢  
 proveit.logic.sets.unification.union_inclusion
63instantiation372  ⊢  
  : , :
64instantiation86, 340, 357, 444, 81  ⊢  
  : , : , : , :
65conjecture  ⊢  
 proveit.numbers.number_sets.integers.disjoint_intervals
66instantiation113, 368, 82, 116, 83, 98  ⊢  
  : , :
67axiom  ⊢  
 proveit.logic.booleans.eq_true_intro
68instantiation412, 84, 85,  ⊢  
  : , : , :
69conjecture  ⊢  
 proveit.logic.sets.functions.injections.subset_injection
70instantiation86, 340, 341, 444, 87  ⊢  
  : , : , : , :
71instantiation88, 89  ⊢  
  : , :
72conjecture  ⊢  
 proveit.physics.quantum.QPE._outcome_prob
73instantiation90, 302, 306,  ⊢  
  : , :
74conjecture  ⊢  
 proveit.core_expr_types.conditionals.true_condition_elimination
75instantiation452, 91, 92,  ⊢  
  : , : , :
76conjecture  ⊢  
 proveit.physics.quantum.QPE._fail_sum_prob_conds_equiv_lemma
77conjecture  ⊢  
 proveit.core_expr_types.conditionals.condition_substitution
78instantiation378, 93  ⊢  
  : , : , :
79instantiation179, 94  ⊢  
  :
80instantiation452, 439, 95  ⊢  
  : , : , :
81instantiation113, 368, 96, 97, 98, 99  ⊢  
  : , :
82instantiation380  ⊢  
  : , : , :
83instantiation104, 329, 129, 100, 101, 102*, 103*  ⊢  
  : , : , :
84instantiation104, 105, 270, 106, 107, 108*, 109*,  ⊢  
  : , : , :
85instantiation110, 111, 112*,  ⊢  
  :
86conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_subset_eq
87instantiation113, 368, 114, 115, 116, 117  ⊢  
  : , :
88theorem  ⊢  
 proveit.logic.booleans.conjunction.left_from_and
89instantiation118, 119  ⊢  
  : , : , :
90conjecture  ⊢  
 proveit.physics.quantum.QPE._mod_add_closure
91instantiation436, 357, 444  ⊢  
  : , :
92assumption  ⊢  
93instantiation378, 241  ⊢  
  : , : , :
94instantiation452, 439, 120  ⊢  
  : , : , :
95instantiation452, 447, 303  ⊢  
  : , : , :
96instantiation380  ⊢  
  : , : , :
97instantiation121, 122, 123  ⊢  
  : , : , :
98instantiation157, 422, 344, 124, 125, 126*  ⊢  
  : , : , :
99instantiation148, 158, 127  ⊢  
  : , :
100instantiation163, 237, 433  ⊢  
  : , :
101instantiation128, 129, 237, 433, 130, 131  ⊢  
  : , : , :
102instantiation376, 132  ⊢  
  : , :
103instantiation363, 133, 134, 135  ⊢  
  : , : , : , :
104conjecture  ⊢  
 proveit.numbers.addition.strong_bound_via_left_term_bound
105instantiation163, 344, 136,  ⊢  
  : , :
106instantiation452, 439, 137  ⊢  
  : , : , :
107instantiation138, 270, 139, 422, 272, 359,  ⊢  
  : , : , :
108instantiation331, 140, 141,  ⊢  
  : , : , :
109instantiation331, 142, 143,  ⊢  
  : , : , :
110conjecture  ⊢  
 proveit.physics.quantum.QPE._modabs_in_full_domain_simp
111instantiation144, 340, 444, 306, 145,  ⊢  
  : , : , :
112instantiation146, 147,  ⊢  
  :
113conjecture  ⊢  
 proveit.logic.booleans.conjunction.and_if_all
114instantiation380  ⊢  
  : , : , :
115instantiation148, 149, 150  ⊢  
  : , :
116instantiation157, 151, 344, 165, 166, 152*, 153*  ⊢  
  : , : , :
117instantiation216, 154  ⊢  
  : , :
118conjecture  ⊢  
 proveit.logic.sets.functions.bijections.membership_unfolding
119instantiation155, 156  ⊢  
  : , : , :
120instantiation452, 447, 302  ⊢  
  : , : , :
121conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_eq_less_eq
122instantiation157, 228, 422, 158, 159, 160*, 161*  ⊢  
  : , : , :
123instantiation216, 162  ⊢  
  : , :
124instantiation163, 165, 422  ⊢  
  : , :
125instantiation164, 344, 165, 422, 166, 167  ⊢  
  : , : , :
126instantiation363, 168, 336, 169  ⊢  
  : , : , : , :
127instantiation352  ⊢  
  :
128conjecture  ⊢  
 proveit.numbers.ordering.less_add_right
129instantiation262, 433, 171  ⊢  
  : , :
130instantiation170, 433, 171, 344, 343, 172  ⊢  
  : , : , :
131instantiation203, 454  ⊢  
  :
132instantiation363, 241, 173, 174  ⊢  
  : , : , : , :
133instantiation348, 349, 454, 446, 351, 175, 209, 425, 311  ⊢  
  : , : , : , : , : , :
134instantiation348, 454, 349, 175, 325, 351, 209, 425, 371, 387  ⊢  
  : , : , : , : , : , :
135instantiation363, 176, 177, 178  ⊢  
  : , : , : , :
136instantiation179, 270,  ⊢  
  :
137instantiation452, 447, 180  ⊢  
  : , : , :
138conjecture  ⊢  
 proveit.numbers.ordering.less_eq_add_right_strong
139instantiation452, 439, 181  ⊢  
  : , : , :
140instantiation348, 446, 454, 349, 213, 351, 244, 327, 215,  ⊢  
  : , : , : , : , : , :
141instantiation182, 244, 327, 183,  ⊢  
  : , : , :
142instantiation378, 184  ⊢  
  : , : , :
143instantiation331, 185, 186,  ⊢  
  : , : , :
144conjecture  ⊢  
 proveit.numbers.number_sets.integers.in_interval
145instantiation225, 187, 188,  ⊢  
  : , :
146conjecture  ⊢  
 proveit.numbers.absolute_value.abs_neg_elim
147instantiation216, 246,  ⊢  
  : , :
148conjecture  ⊢  
 proveit.numbers.ordering.relax_equal_to_less_eq
149instantiation452, 439, 189  ⊢  
  : , : , :
150instantiation352  ⊢  
  :
151instantiation190, 368, 191, 228, 422, 383  ⊢  
  : , :
152instantiation363, 192, 193, 194  ⊢  
  : , : , : , :
153instantiation376, 195  ⊢  
  : , :
154instantiation245, 273, 247  ⊢  
  : , : , :
155conjecture  ⊢  
 proveit.logic.sets.functions.bijections.elim_domain_condition
156modus ponens196, 197  ⊢  
157conjecture  ⊢  
 proveit.numbers.addition.weak_bound_via_left_term_bound
158instantiation405, 406, 449  ⊢  
  : , : , :
159instantiation198, 449  ⊢  
  :
160instantiation385, 411, 199  ⊢  
  : , :
161instantiation331, 200, 201  ⊢  
  : , : , :
162instantiation274, 308  ⊢  
  :
163conjecture  ⊢  
 proveit.numbers.addition.add_real_closure_bin
164conjecture  ⊢  
 proveit.numbers.ordering.less_eq_add_right
165instantiation452, 439, 202  ⊢  
  : , : , :
166instantiation292, 438, 437, 428  ⊢  
  : , : , :
167instantiation203, 446  ⊢  
  :
168instantiation331, 204, 205  ⊢  
  : , : , :
169instantiation376, 346  ⊢  
  : , :
170conjecture  ⊢  
 proveit.numbers.multiplication.strong_bound_via_right_factor_bound
171conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.zero_is_real
172instantiation274, 430  ⊢  
  :
173instantiation352  ⊢  
  :
174instantiation376, 206  ⊢  
  : , :
175instantiation372  ⊢  
  : , :
176instantiation207, 446, 209, 425, 371, 387  ⊢  
  : , : , : , : , : , : , :
177instantiation316, 349, 454, 351, 208, 288, 209, 371, 425, 387, 210*  ⊢  
  : , : , : , : , : , :
178instantiation316, 446, 454, 349, 288, 351, 327, 425, 387, 289*  ⊢  
  : , : , : , : , : , :
179conjecture  ⊢  
 proveit.numbers.negation.real_closure
180instantiation443, 341, 438  ⊢  
  : , :
181instantiation452, 447, 341  ⊢  
  : , : , :
182conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_triple_13
183instantiation352  ⊢  
  :
184instantiation331, 211, 212  ⊢  
  : , : , :
185instantiation348, 446, 454, 349, 213, 351, 371, 327, 215,  ⊢  
  : , : , : , : , : , :
186instantiation214, 327, 215, 328,  ⊢  
  : , : , :
187instantiation374, 340, 341, 322,  ⊢  
  : , : , :
188instantiation216, 217,  ⊢  
  : , :
189instantiation452, 447, 340  ⊢  
  : , : , :
190conjecture  ⊢  
 proveit.numbers.addition.add_real_closure
191instantiation380  ⊢  
  : , : , :
192instantiation331, 218, 219  ⊢  
  : , : , :
193instantiation352  ⊢  
  :
194instantiation376, 220  ⊢  
  : , :
195instantiation363, 241, 221, 222  ⊢  
  : , : , : , :
196instantiation223, 224*  ⊢  
  : , : , : , : , : , :
197instantiation225, 226, 227  ⊢  
  : , :
198conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_pos_lower_bound
199instantiation452, 432, 228  ⊢  
  : , : , :
200instantiation331, 229, 230  ⊢  
  : , : , :
201instantiation231, 382, 336  ⊢  
  : , :
202instantiation452, 447, 437  ⊢  
  : , : , :
203conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_lower_bound
204instantiation378, 232  ⊢  
  : , : , :
205instantiation331, 233, 234  ⊢  
  : , : , :
206instantiation331, 235, 236  ⊢  
  : , : , :
207conjecture  ⊢  
 proveit.numbers.addition.leftward_commutation
208instantiation372  ⊢  
  : , :
209instantiation452, 432, 237  ⊢  
  : , : , :
210instantiation331, 238, 239, 240*  ⊢  
  : , : , :
211instantiation378, 241  ⊢  
  : , : , :
212instantiation331, 242, 243  ⊢  
  : , : , :
213instantiation372  ⊢  
  : , :
214conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_triple_21
215instantiation381, 244,  ⊢  
  :
216conjecture  ⊢  
 proveit.numbers.ordering.relax_less
217instantiation245, 246, 247,  ⊢  
  : , : , :
218instantiation378, 313  ⊢  
  : , : , :
219instantiation331, 248, 249  ⊢  
  : , : , :
220instantiation378, 330  ⊢  
  : , : , :
221instantiation376, 250  ⊢  
  : , :
222instantiation376, 251  ⊢  
  : , :
223conjecture  ⊢  
 proveit.logic.sets.functions.bijections.bijection_transitivity
224instantiation378, 252  ⊢  
  : , : , :
225theorem  ⊢  
 proveit.logic.booleans.conjunction.and_if_both
226instantiation253, 254, 340, 444, 302  ⊢  
  : , : , : , : , :
227conjecture  ⊢  
 proveit.physics.quantum.QPE._sample_space_bijection
228instantiation452, 439, 255  ⊢  
  : , : , :
229instantiation378, 346  ⊢  
  : , : , :
230instantiation378, 330  ⊢  
  : , : , :
231conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_basic
232instantiation331, 256, 257  ⊢  
  : , : , :
233instantiation348, 349, 454, 446, 351, 258, 382, 387, 411  ⊢  
  : , : , : , : , : , :
234instantiation268, 411, 382, 269  ⊢  
  : , : , :
235instantiation378, 259  ⊢  
  : , : , :
236instantiation331, 260, 261  ⊢  
  : , : , :
237instantiation262, 433, 344  ⊢  
  : , :
238instantiation378, 263  ⊢  
  : , : , :
239instantiation376, 264  ⊢  
  : , :
240instantiation331, 265, 266  ⊢  
  : , : , :
241instantiation267, 327, 411  ⊢  
  : , :
242instantiation348, 349, 454, 446, 351, 325, 371, 387, 411  ⊢  
  : , : , : , : , : , :
243instantiation268, 411, 371, 269  ⊢  
  : , : , :
244instantiation452, 432, 270,  ⊢  
  : , : , :
245axiom  ⊢  
 proveit.numbers.ordering.transitivity_less_less
246instantiation271, 272, 273,  ⊢  
  : , : , :
247instantiation274, 449  ⊢  
  :
248instantiation348, 446, 368, 349, 369, 351, 327, 370, 411, 371  ⊢  
  : , : , : , : , : , :
249instantiation334, 349, 454, 351, 275, 327, 370, 411, 328  ⊢  
  : , : , : , : , : , : , : , :
250instantiation305, 311, 327, 387, 276  ⊢  
  : , : , :
251instantiation331, 277, 278  ⊢  
  : , : , :
252instantiation376, 279  ⊢  
  : , :
253conjecture  ⊢  
 proveit.numbers.modular.interval_left_shift_bijection
254instantiation280, 454, 435  ⊢  
  : , :
255instantiation452, 447, 356  ⊢  
  : , : , :
256instantiation378, 312  ⊢  
  : , : , :
257instantiation331, 281, 282  ⊢  
  : , : , :
258instantiation372  ⊢  
  : , :
259instantiation283, 425  ⊢  
  :
260instantiation348, 446, 454, 349, 325, 351, 284, 371, 387  ⊢  
  : , : , : , : , : , :
261instantiation285, 349, 454, 351, 325, 371, 387  ⊢  
  : , : , : , :
262conjecture  ⊢  
 proveit.numbers.multiplication.mult_real_closure_bin
263instantiation376, 286  ⊢  
  : , :
264instantiation287, 349, 454, 446, 351, 288, 425, 387, 327  ⊢  
  : , : , : , : , : , :
265instantiation378, 289  ⊢  
  : , : , :
266instantiation290, 327  ⊢  
  :
267conjecture  ⊢  
 proveit.numbers.negation.distribute_neg_through_binary_sum
268conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_triple_32
269instantiation352  ⊢  
  :
270instantiation452, 439, 291,  ⊢  
  : , : , :
271conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_eq_less
272instantiation292, 340, 341, 322,  ⊢  
  : , : , :
273instantiation293, 294  ⊢  
  :
274conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_pos_is_pos
275instantiation372  ⊢  
  : , :
276instantiation337, 295, 296  ⊢  
  : , : , :
277instantiation331, 297, 298  ⊢  
  : , : , :
278instantiation331, 299, 300  ⊢  
  : , : , :
279instantiation301, 302, 303  ⊢  
  : , :
280conjecture  ⊢  
 proveit.numbers.exponentiation.exp_natpos_closure
281instantiation348, 349, 454, 446, 351, 350, 382, 355, 411  ⊢  
  : , : , : , : , : , :
282instantiation316, 446, 454, 349, 317, 351, 382, 355, 411, 318*  ⊢  
  : , : , : , : , : , :
283conjecture  ⊢  
 proveit.numbers.multiplication.mult_zero_right
284conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.zero_is_complex
285conjecture  ⊢  
 proveit.numbers.addition.elim_zero_any
286instantiation304, 327  ⊢  
  :
287conjecture  ⊢  
 proveit.numbers.multiplication.distribute_through_sum
288instantiation372  ⊢  
  : , :
289instantiation305, 411, 425, 354  ⊢  
  : , : , :
290conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_left
291instantiation452, 447, 306,  ⊢  
  : , : , :
292conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_upper_bound
293conjecture  ⊢  
 proveit.numbers.number_sets.integers.negative_if_in_neg_int
294instantiation307, 308  ⊢  
  :
295instantiation331, 309, 310  ⊢  
  : , : , :
296instantiation385, 327, 311  ⊢  
  : , :
297instantiation378, 312  ⊢  
  : , : , :
298instantiation378, 313  ⊢  
  : , : , :
299instantiation331, 314, 315  ⊢  
  : , : , :
300instantiation316, 349, 454, 446, 351, 317, 355, 411, 371, 318*  ⊢  
  : , : , : , : , : , :
301axiom  ⊢  
 proveit.physics.quantum.QPE._mod_add_def
302conjecture  ⊢  
 proveit.physics.quantum.QPE._best_floor_is_int
303instantiation452, 319, 320  ⊢  
  : , : , :
304conjecture  ⊢  
 proveit.numbers.negation.mult_neg_one_left
305conjecture  ⊢  
 proveit.numbers.addition.subtraction.subtract_from_add
306instantiation452, 321, 322,  ⊢  
  : , : , :
307conjecture  ⊢  
 proveit.numbers.negation.int_neg_closure
308instantiation323, 324, 391  ⊢  
  : , :
309instantiation348, 446, 454, 349, 325, 351, 327, 371, 387  ⊢  
  : , : , : , : , : , :
310instantiation326, 327, 387, 328  ⊢  
  : , : , :
311instantiation452, 432, 329  ⊢  
  : , : , :
312instantiation378, 346  ⊢  
  : , : , :
313instantiation378, 330  ⊢  
  : , : , :
314instantiation331, 332, 333  ⊢  
  : , : , :
315instantiation334, 349, 446, 454, 351, 335, 382, 355, 411, 371, 336  ⊢  
  : , : , : , : , : , : , : , :
316conjecture  ⊢  
 proveit.numbers.addition.association
317instantiation372  ⊢  
  : , :
318instantiation337, 338, 339  ⊢  
  : , : , :
319instantiation436, 340, 444  ⊢  
  : , :
320assumption  ⊢  
321instantiation436, 340, 341  ⊢  
  : , :
322assumption  ⊢  
323conjecture  ⊢  
 proveit.numbers.addition.add_nat_pos_closure_bin
324instantiation342, 416, 343  ⊢  
  :
325instantiation372  ⊢  
  : , :
326conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_triple_12
327instantiation452, 432, 344  ⊢  
  : , : , :
328instantiation352  ⊢  
  :
329instantiation452, 439, 345  ⊢  
  : , : , :
330instantiation378, 346  ⊢  
  : , : , :
331axiom  ⊢  
 proveit.logic.equality.equals_transitivity
332instantiation348, 349, 454, 446, 351, 350, 382, 355, 347  ⊢  
  : , : , : , : , : , :
333instantiation348, 454, 368, 349, 350, 369, 351, 382, 355, 370, 411, 371  ⊢  
  : , : , : , : , : , :
334conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_general
335instantiation372  ⊢  
  : , :
336instantiation352  ⊢  
  :
337theorem  ⊢  
 proveit.logic.equality.sub_right_side_into
338instantiation353, 411, 425, 354  ⊢  
  : , : , :
339instantiation385, 411, 355  ⊢  
  : , :
340instantiation443, 356, 438  ⊢  
  : , :
341instantiation450, 357  ⊢  
  :
342conjecture  ⊢  
 proveit.numbers.number_sets.integers.pos_int_is_natural_pos
343instantiation358, 359, 360  ⊢  
  : , : , :
344instantiation452, 439, 361  ⊢  
  : , : , :
345instantiation452, 447, 362  ⊢  
  : , : , :
346instantiation363, 364, 365, 366  ⊢  
  : , : , : , :
347instantiation367, 368, 369, 370, 411, 371  ⊢  
  : , :
348conjecture  ⊢  
 proveit.numbers.addition.disassociation
349axiom  ⊢  
 proveit.numbers.number_sets.natural_numbers.zero_in_nats
350instantiation372  ⊢  
  : , :
351conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_len_0_typical_eq
352axiom  ⊢  
 proveit.logic.equality.equals_reflexivity
353conjecture  ⊢  
 proveit.numbers.addition.subtraction.subtract_from_add_reversed
354conjecture  ⊢  
 proveit.numbers.numerals.decimals.add_1_1
355instantiation452, 432, 373  ⊢  
  : , : , :
356instantiation450, 444  ⊢  
  :
357instantiation443, 416, 438  ⊢  
  : , :
358conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_less_eq
359conjecture  ⊢  
 proveit.numbers.numerals.decimals.less_0_1
360instantiation374, 438, 437, 428  ⊢  
  : , : , :
361instantiation452, 447, 416  ⊢  
  : , : , :
362instantiation443, 404, 419  ⊢  
  : , :
363conjecture  ⊢  
 proveit.logic.equality.four_chain_transitivity
364instantiation378, 375  ⊢  
  : , : , :
365instantiation376, 377  ⊢  
  : , :
366instantiation378, 379  ⊢  
  : , : , :
367conjecture  ⊢  
 proveit.numbers.addition.add_complex_closure
368conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat3
369instantiation380  ⊢  
  : , : , :
370instantiation381, 382  ⊢  
  :
371instantiation452, 432, 383  ⊢  
  : , : , :
372conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_2_typical_eq
373instantiation452, 439, 384  ⊢  
  : , : , :
374conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_lower_bound
375instantiation385, 386, 387  ⊢  
  : , :
376theorem  ⊢  
 proveit.logic.equality.equals_reversal
377instantiation388, 425, 397, 396, 413  ⊢  
  : , : , :
378axiom  ⊢  
 proveit.logic.equality.substitution
379instantiation389, 390, 391  ⊢  
  : , :
380conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_3_typical_eq
381conjecture  ⊢  
 proveit.numbers.negation.complex_closure
382instantiation392, 393, 394  ⊢  
  : , :
383instantiation452, 439, 395  ⊢  
  : , : , :
384instantiation452, 447, 445  ⊢  
  : , : , :
385conjecture  ⊢  
 proveit.numbers.addition.commutation
386instantiation452, 432, 396  ⊢  
  : , : , :
387instantiation452, 432, 397  ⊢  
  : , : , :
388conjecture  ⊢  
 proveit.numbers.exponentiation.product_of_real_powers
389conjecture  ⊢  
 proveit.numbers.exponentiation.neg_power_as_div
390instantiation452, 398, 399  ⊢  
  : , : , :
391conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat1
392conjecture  ⊢  
 proveit.numbers.multiplication.mult_complex_closure_bin
393instantiation400, 411, 401, 402  ⊢  
  : , :
394instantiation452, 432, 403  ⊢  
  : , : , :
395instantiation452, 447, 404  ⊢  
  : , : , :
396instantiation405, 406, 442  ⊢  
  : , : , :
397instantiation452, 439, 407  ⊢  
  : , : , :
398conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_nonzero_within_complex_nonzero
399instantiation452, 408, 409  ⊢  
  : , : , :
400conjecture  ⊢  
 proveit.numbers.division.div_complex_closure
401instantiation410, 425, 411  ⊢  
  : , :
402instantiation412, 413, 414  ⊢  
  : , : , :
403instantiation452, 439, 415  ⊢  
  : , : , :
404instantiation450, 416  ⊢  
  :
405theorem  ⊢  
 proveit.logic.sets.inclusion.unfold_subset_eq
406instantiation417, 418  ⊢  
  : , :
407instantiation452, 447, 419  ⊢  
  : , : , :
408conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_nonzero_within_real_nonzero
409instantiation452, 420, 421  ⊢  
  : , : , :
410conjecture  ⊢  
 proveit.numbers.exponentiation.exp_complex_closure
411instantiation452, 432, 422  ⊢  
  : , : , :
412theorem  ⊢  
 proveit.logic.equality.sub_left_side_into
413instantiation423, 430  ⊢  
  :
414instantiation424, 425  ⊢  
  :
415instantiation452, 447, 426  ⊢  
  : , : , :
416instantiation452, 427, 428  ⊢  
  : , : , :
417theorem  ⊢  
 proveit.logic.sets.inclusion.relax_proper_subset
418conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.nat_pos_within_real
419instantiation450, 438  ⊢  
  :
420conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.nonzero_int_within_rational_nonzero
421instantiation452, 429, 430  ⊢  
  : , : , :
422instantiation452, 439, 431  ⊢  
  : , : , :
423conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.nonzero_if_is_nat_pos
424conjecture  ⊢  
 proveit.numbers.exponentiation.complex_x_to_first_power_is_x
425instantiation452, 432, 433  ⊢  
  : , : , :
426instantiation434, 451, 435  ⊢  
  : , :
427instantiation436, 438, 437  ⊢  
  : , :
428assumption  ⊢  
429conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_nonzero_int
430conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat2
431instantiation452, 447, 438  ⊢  
  : , : , :
432conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_within_complex
433instantiation452, 439, 440  ⊢  
  : , : , :
434conjecture  ⊢  
 proveit.numbers.exponentiation.exp_int_closure
435instantiation452, 441, 442  ⊢  
  : , : , :
436conjecture  ⊢  
 proveit.numbers.number_sets.integers.int_interval_within_int
437instantiation443, 444, 445  ⊢  
  : , :
438instantiation452, 453, 446  ⊢  
  : , : , :
439conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_within_real
440instantiation452, 447, 451  ⊢  
  : , : , :
441conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.nat_pos_within_nat
442axiom  ⊢  
 proveit.physics.quantum.QPE._t_in_natural_pos
443conjecture  ⊢  
 proveit.numbers.addition.add_int_closure_bin
444instantiation452, 448, 449  ⊢  
  : , : , :
445instantiation450, 451  ⊢  
  :
446theorem  ⊢  
 proveit.numbers.numerals.decimals.nat1
447conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.int_within_rational
448conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_int
449conjecture  ⊢  
 proveit.physics.quantum.QPE._two_pow_t_minus_one_is_nat_pos
450conjecture  ⊢  
 proveit.numbers.negation.int_closure
451instantiation452, 453, 454  ⊢  
  : , : , :
452theorem  ⊢  
 proveit.logic.sets.inclusion.superset_membership_from_proper_subset
453conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_within_int
454conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat2
*equality replacement requirements