logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory
from proveit import b, e, l, m, defaults
from proveit.logic import InSet
from proveit.numbers import Add, Neg, frac, one, four, NaturalPos, IntegerNeg
# import common expressions
from proveit.physics.quantum.QPE import _neg_domain, _pos_domain, ModAdd
# import theorems
from proveit.physics.quantum.QPE import (
    _b_floor, _alpha_sqrd_upper_bound, _alpha_are_complex, 
    _t_in_natural_pos, _two_pow_t_is_nat_pos, _two_pow_t_minus_one_is_nat_pos,
    _fail_sum, _delta_b_is_real, _best_floor_is_int,
    _scaled_delta_b_not_eq_nonzeroInt)
In [2]:
%proving _failure_upper_bound_lemma
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
_failure_upper_bound_lemma:
(see dependencies)
In [3]:
defaults.assumptions = _failure_upper_bound_lemma.conditions
defaults.assumptions:
In [4]:
defaults.preserved_exprs = {Neg(Add(e, one))} # don't simplify to -e - 1
defaults.preserved_exprs:

Instantiate some needed theorems of this package

In [5]:
pos_assumptions = (InSet(l, _pos_domain),)+tuple(defaults.assumptions)
pos_assumptions:
In [6]:
neg_assumptions = (InSet(l, _neg_domain),)+tuple(defaults.assumptions)
neg_assumptions:
In [7]:
_alpha_sqrd_upper_bound.instantiate(assumptions=pos_assumptions).generalize(l, domain=_pos_domain)
In [8]:
_alpha_sqrd_upper_bound.instantiate(assumptions=neg_assumptions).generalize(l, domain=_neg_domain)
In [9]:
_best_floor_is_int
In [10]:
_delta_b_is_real
In [11]:
_delta_b_is_real.instantiate({b:_b_floor})
In [12]:
_scaled_delta_b_not_eq_nonzeroInt
In [13]:
_scaled_delta_b_not_eq_nonzeroInt.instantiate({b:_b_floor}, assumptions=pos_assumptions)
In [14]:
_scaled_delta_b_not_eq_nonzeroInt.instantiate({b:_b_floor}, assumptions=neg_assumptions)
In [15]:
_alpha_are_complex
In [16]:
_alpha_are_complex.instantiate({m:ModAdd(_b_floor, l)}, assumptions=pos_assumptions)
In [17]:
_alpha_are_complex.instantiate({m:ModAdd(_b_floor, l)}, assumptions=neg_assumptions)
In [18]:
fail_sum_inst = _fail_sum.instantiate()
fail_sum_inst:  ⊢  

Upper bound each of the summations in fail_sum_inst via _alpha_sqrd_upper_bound

In [19]:
first_sum = fail_sum_inst.rhs.terms[0]
first_sum:
In [20]:
second_sum = fail_sum_inst.rhs.terms[1]
second_sum:
In [21]:
_alpha_sqrd_upper_bound
In [22]:
first_sum_bound = first_sum.deduce_bound(_alpha_sqrd_upper_bound)
first_sum_bound:  ⊢  
In [23]:
second_sum_bound = second_sum.deduce_bound(_alpha_sqrd_upper_bound)
second_sum_bound:  ⊢  

Bound the sum of summations by the bound of the sum and simplify

In [24]:
bound_rhs = fail_sum_inst.rhs.deduce_bound([first_sum_bound, second_sum_bound])
bound_rhs:  ⊢  
_failure_upper_bound_lemma may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [25]:
not_yet_factored = fail_sum_inst.apply_transitivity(bound_rhs)
not_yet_factored:  ⊢  
In [26]:
not_yet_factored.inner_expr().rhs.factor(frac(one, four), auto_simplify=False)
In [27]:
%qed
proveit.physics.quantum.QPE._failure_upper_bound_lemma has been proven.
Out[27]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation2, 3, 4  ⊢  
  : , : , :
2theorem  ⊢  
 proveit.logic.equality.sub_right_side_into
3instantiation197, 5, 6  ⊢  
  : , : , :
4instantiation192, 7, 8, 9  ⊢  
  : , : , : , :
5instantiation10, 11, 12  ⊢  
  : , : , :
6instantiation13, 288  ⊢  
  :
7instantiation213, 14  ⊢  
  : , : , :
8instantiation213, 15  ⊢  
  : , : , :
9instantiation211, 16  ⊢  
  : , :
10conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_eq_less_eq
11instantiation137, 21, 17, 20, 18  ⊢  
  : , : , :
12instantiation19, 20, 21, 22, 23  ⊢  
  : , : , :
13conjecture  ⊢  
 proveit.physics.quantum.QPE._fail_sum
14instantiation157, 24, 25  ⊢  
  : , : , :
15instantiation157, 26, 27  ⊢  
  : , : , :
16instantiation28, 289, 299, 207, 29, 208, 64, 30, 31  ⊢  
  : , : , : , : , : , :
17modus ponens32, 33  ⊢  
18modus ponens34, 35  ⊢  
19conjecture  ⊢  
 proveit.numbers.addition.weak_bound_via_right_term_bound
20modus ponens36, 37  ⊢  
21modus ponens38, 39  ⊢  
22modus ponens40, 41  ⊢  
23modus ponens42, 43  ⊢  
24instantiation213, 44  ⊢  
  : , : , :
25instantiation211, 45  ⊢  
  : , :
26instantiation213, 46  ⊢  
  : , : , :
27instantiation211, 47  ⊢  
  : , :
28conjecture  ⊢  
 proveit.numbers.multiplication.distribute_through_sum
29instantiation103  ⊢  
  : , :
30modus ponens48, 77  ⊢  
31modus ponens49, 81  ⊢  
32instantiation54  ⊢  
  : , : , :
33generalization50  ⊢  
34instantiation56  ⊢  
  : , : , :
35generalization51  ⊢  
36instantiation54  ⊢  
  : , : , :
37generalization52  ⊢  
38instantiation54  ⊢  
  : , : , :
39generalization53  ⊢  
40instantiation54  ⊢  
  : , : , :
41generalization55  ⊢  
42instantiation56  ⊢  
  : , : , :
43generalization57  ⊢  
44modus ponens58, 59  ⊢  
45instantiation60, 208, 64  ⊢  
  : , :
46modus ponens61, 62  ⊢  
47instantiation63, 208, 64  ⊢  
  : , :
48instantiation65  ⊢  
  : , : , :
49instantiation65  ⊢  
  : , : , :
50instantiation133, 66, 299,  ⊢  
  : , :
51instantiation73, 67, 186,  ⊢  
  :
52instantiation123, 261, 68, 69,  ⊢  
  : , :
53instantiation133, 70, 299,  ⊢  
  : , :
54conjecture  ⊢  
 proveit.numbers.summation.summation_real_closure
55instantiation123, 261, 71, 72,  ⊢  
  : , :
56conjecture  ⊢  
 proveit.numbers.summation.weak_summation_from_summands_bound
57instantiation73, 74, 191,  ⊢  
  :
58instantiation78, 267  ⊢  
  : , : , : , : , : , : , :
59generalization75  ⊢  
60modus ponens76, 77  ⊢  
61instantiation78, 267  ⊢  
  : , : , : , : , : , : , :
62generalization79  ⊢  
63modus ponens80, 81  ⊢  
64instantiation297, 260, 82  ⊢  
  : , : , :
65conjecture  ⊢  
 proveit.numbers.summation.summation_complex_closure
66instantiation297, 85, 83,  ⊢  
  : , : , :
67instantiation89, 235, 291, 200, 84,  ⊢  
  : , : , :
68instantiation203, 96, 119,  ⊢  
  : , :
69instantiation87, 299, 88, 109, 131,  ⊢  
  : , :
70instantiation297, 85, 86,  ⊢  
  : , : , :
71instantiation203, 96, 124,  ⊢  
  : , :
72instantiation87, 299, 88, 109, 135,  ⊢  
  : , :
73conjecture  ⊢  
 proveit.physics.quantum.QPE._alpha_sqrd_upper_bound
74instantiation89, 235, 291, 223, 90,  ⊢  
  : , : , :
75instantiation211, 91,  ⊢  
  : , :
76instantiation94, 289, 267, 207  ⊢  
  : , : , : , : , : , :
77generalization92  ⊢  
78conjecture  ⊢  
 proveit.core_expr_types.lambda_maps.general_lambda_substitution
79instantiation211, 93,  ⊢  
  : , :
80instantiation94, 289, 267, 207  ⊢  
  : , : , : , : , : , :
81generalization95  ⊢  
82instantiation123, 261, 96, 97  ⊢  
  : , :
83instantiation101, 98,  ⊢  
  :
84instantiation104, 99, 100,  ⊢  
  : , :
85conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.real_nonneg_within_real
86instantiation101, 102,  ⊢  
  :
87conjecture  ⊢  
 proveit.numbers.multiplication.mult_not_eq_zero
88instantiation103  ⊢  
  : , :
89conjecture  ⊢  
 proveit.numbers.number_sets.integers.in_interval
90instantiation104, 105, 106,  ⊢  
  : , :
91instantiation108, 245, 109, 131, 110*,  ⊢  
  : , : , : , :
92instantiation297, 260, 107,  ⊢  
  : , : , :
93instantiation108, 245, 109, 135, 110*,  ⊢  
  : , : , : , :
94conjecture  ⊢  
 proveit.numbers.multiplication.distribute_through_summation
95instantiation297, 260, 111,  ⊢  
  : , : , :
96instantiation297, 270, 112  ⊢  
  : , : , :
97instantiation248, 152  ⊢  
  :
98instantiation115, 113,  ⊢  
  :
99instantiation285, 235, 236, 237,  ⊢  
  : , : , :
100instantiation117, 114,  ⊢  
  : , :
101conjecture  ⊢  
 proveit.numbers.absolute_value.abs_complex_closure
102instantiation115, 116,  ⊢  
  :
103conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_2_typical_eq
104theorem  ⊢  
 proveit.logic.booleans.conjunction.and_if_both
105instantiation117, 118,  ⊢  
  : , :
106instantiation234, 255, 291, 256,  ⊢  
  : , : , :
107instantiation123, 261, 119, 120,  ⊢  
  : , :
108conjecture  ⊢  
 proveit.numbers.division.prod_of_fracs
109instantiation297, 249, 121  ⊢  
  : , : , :
110instantiation122, 245  ⊢  
  :
111instantiation123, 261, 124, 125,  ⊢  
  : , :
112instantiation297, 277, 126  ⊢  
  : , : , :
113instantiation129, 222, 200,  ⊢  
  : , :
114instantiation127, 202, 128,  ⊢  
  : , : , :
115conjecture  ⊢  
 proveit.physics.quantum.QPE._alpha_are_complex
116instantiation129, 222, 223,  ⊢  
  : , :
117conjecture  ⊢  
 proveit.numbers.ordering.relax_less
118instantiation217, 130, 224,  ⊢  
  : , : , :
119instantiation133, 163, 299,  ⊢  
  : , :
120instantiation134, 131,  ⊢  
  :
121instantiation297, 263, 132  ⊢  
  : , : , :
122conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_left
123conjecture  ⊢  
 proveit.numbers.division.div_real_closure
124instantiation133, 165, 299,  ⊢  
  : , :
125instantiation134, 135,  ⊢  
  :
126instantiation297, 298, 136  ⊢  
  : , : , :
127axiom  ⊢  
 proveit.numbers.ordering.transitivity_less_less
128instantiation253, 294  ⊢  
  :
129conjecture  ⊢  
 proveit.physics.quantum.QPE._mod_add_closure
130instantiation137, 156, 261, 138, 139, 140*, 141*  ⊢  
  : , : , :
131instantiation144, 142, 229,  ⊢  
  : , :
132instantiation297, 272, 143  ⊢  
  : , : , :
133conjecture  ⊢  
 proveit.numbers.exponentiation.exp_real_closure_nat_power
134conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.nonzero_if_in_complex_nonzero
135instantiation144, 145, 229,  ⊢  
  : , :
136conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat4
137conjecture  ⊢  
 proveit.numbers.addition.weak_bound_via_left_term_bound
138instantiation257, 258, 294  ⊢  
  : , : , :
139instantiation146, 294  ⊢  
  :
140instantiation225, 245, 147  ⊢  
  : , :
141instantiation157, 148, 149  ⊢  
  : , : , :
142instantiation153, 150, 151,  ⊢  
  :
143instantiation297, 278, 152  ⊢  
  : , : , :
144conjecture  ⊢  
 proveit.numbers.exponentiation.exp_complex_nonzero_closure
145instantiation153, 154, 155,  ⊢  
  :
146conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_pos_lower_bound
147instantiation297, 260, 156  ⊢  
  : , : , :
148instantiation157, 158, 159  ⊢  
  : , : , :
149instantiation160, 161, 162  ⊢  
  : , :
150instantiation297, 260, 163,  ⊢  
  : , : , :
151instantiation166, 164,  ⊢  
  : , :
152conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat4
153conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.nonzero_complex_is_complex_nonzero
154instantiation297, 260, 165,  ⊢  
  : , : , :
155instantiation166, 167,  ⊢  
  : , :
156instantiation297, 270, 168  ⊢  
  : , : , :
157axiom  ⊢  
 proveit.logic.equality.equals_transitivity
158instantiation213, 181  ⊢  
  : , : , :
159instantiation213, 169  ⊢  
  : , : , :
160conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_basic
161instantiation170, 171, 172  ⊢  
  : , :
162instantiation173  ⊢  
  :
163instantiation176, 174, 178,  ⊢  
  : , :
164instantiation179, 175,  ⊢  
  : , :
165instantiation176, 177, 178,  ⊢  
  : , :
166conjecture  ⊢  
 proveit.numbers.addition.subtraction.nonzero_difference_if_different
167instantiation179, 180,  ⊢  
  : , :
168instantiation297, 277, 251  ⊢  
  : , : , :
169instantiation213, 181  ⊢  
  : , : , :
170conjecture  ⊢  
 proveit.numbers.multiplication.mult_complex_closure_bin
171instantiation182, 245, 183, 184  ⊢  
  : , :
172instantiation297, 260, 204  ⊢  
  : , : , :
173axiom  ⊢  
 proveit.logic.equality.equals_reflexivity
174instantiation297, 270, 185,  ⊢  
  : , : , :
175instantiation189, 190, 200, 186,  ⊢  
  : , :
176conjecture  ⊢  
 proveit.numbers.addition.add_real_closure_bin
177instantiation297, 270, 187,  ⊢  
  : , : , :
178instantiation247, 188  ⊢  
  :
179theorem  ⊢  
 proveit.logic.equality.not_equals_symmetry
180instantiation189, 190, 223, 191,  ⊢  
  : , :
181instantiation192, 193, 194, 195  ⊢  
  : , : , : , :
182conjecture  ⊢  
 proveit.numbers.division.div_complex_closure
183instantiation196, 229, 245  ⊢  
  : , :
184instantiation197, 231, 198  ⊢  
  : , : , :
185instantiation297, 277, 200,  ⊢  
  : , : , :
186instantiation199, 200, 201, 202,  ⊢  
  : , :
187instantiation297, 277, 223,  ⊢  
  : , : , :
188instantiation203, 204, 205  ⊢  
  : , :
189conjecture  ⊢  
 proveit.physics.quantum.QPE._scaled_delta_b_not_eq_nonzeroInt
190instantiation206, 207, 289, 208  ⊢  
  : , : , : , : , :
191instantiation248, 209,  ⊢  
  :
192conjecture  ⊢  
 proveit.logic.equality.four_chain_transitivity
193instantiation213, 210  ⊢  
  : , : , :
194instantiation211, 212  ⊢  
  : , :
195instantiation213, 214  ⊢  
  : , : , :
196conjecture  ⊢  
 proveit.numbers.exponentiation.exp_complex_closure
197theorem  ⊢  
 proveit.logic.equality.sub_left_side_into
198instantiation215, 229  ⊢  
  :
199conjecture  ⊢  
 proveit.numbers.ordering.less_is_not_eq_int
200instantiation297, 216, 237,  ⊢  
  : , : , :
201conjecture  ⊢  
 proveit.numbers.number_sets.integers.zero_is_int
202instantiation217, 218, 219,  ⊢  
  : , : , :
203conjecture  ⊢  
 proveit.numbers.multiplication.mult_real_closure_bin
204instantiation257, 258, 220  ⊢  
  : , : , :
205instantiation221, 222  ⊢  
  :
206conjecture  ⊢  
 proveit.logic.sets.enumeration.in_enumerated_set
207axiom  ⊢  
 proveit.numbers.number_sets.natural_numbers.zero_in_nats
208conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_len_0_typical_eq
209instantiation274, 223, 224,  ⊢  
  :
210instantiation225, 226, 227  ⊢  
  : , :
211theorem  ⊢  
 proveit.logic.equality.equals_reversal
212instantiation228, 229, 230, 243, 231  ⊢  
  : , : , :
213axiom  ⊢  
 proveit.logic.equality.substitution
214instantiation232, 233, 267  ⊢  
  : , :
215conjecture  ⊢  
 proveit.numbers.exponentiation.complex_x_to_first_power_is_x
216instantiation284, 235, 236  ⊢  
  : , :
217conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_eq_less
218instantiation234, 235, 236, 237,  ⊢  
  : , : , :
219instantiation238, 239  ⊢  
  :
220conjecture  ⊢  
 proveit.physics.quantum.QPE._two_pow_t_is_nat_pos
221conjecture  ⊢  
 proveit.physics.quantum.QPE._delta_b_is_real
222conjecture  ⊢  
 proveit.physics.quantum.QPE._best_floor_is_int
223instantiation297, 240, 256,  ⊢  
  : , : , :
224instantiation281, 241, 242,  ⊢  
  : , : , :
225conjecture  ⊢  
 proveit.numbers.addition.commutation
226instantiation297, 260, 243  ⊢  
  : , : , :
227instantiation244, 245  ⊢  
  :
228conjecture  ⊢  
 proveit.numbers.exponentiation.product_of_real_powers
229instantiation297, 260, 246  ⊢  
  : , : , :
230instantiation247, 261  ⊢  
  :
231instantiation248, 279  ⊢  
  :
232conjecture  ⊢  
 proveit.numbers.exponentiation.neg_power_as_div
233instantiation297, 249, 250  ⊢  
  : , : , :
234conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_upper_bound
235instantiation290, 251, 286  ⊢  
  : , :
236instantiation295, 255  ⊢  
  :
237assumption  ⊢  
238conjecture  ⊢  
 proveit.numbers.number_sets.integers.negative_if_in_neg_int
239instantiation252, 254  ⊢  
  :
240instantiation284, 255, 291  ⊢  
  : , :
241instantiation253, 254  ⊢  
  :
242instantiation285, 255, 291, 256,  ⊢  
  : , : , :
243instantiation257, 258, 259  ⊢  
  : , : , :
244conjecture  ⊢  
 proveit.numbers.negation.complex_closure
245instantiation297, 260, 261  ⊢  
  : , : , :
246instantiation297, 270, 262  ⊢  
  : , : , :
247conjecture  ⊢  
 proveit.numbers.negation.real_closure
248conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.nonzero_if_is_nat_pos
249conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_nonzero_within_complex_nonzero
250instantiation297, 263, 264  ⊢  
  : , : , :
251instantiation295, 291  ⊢  
  :
252conjecture  ⊢  
 proveit.numbers.negation.int_neg_closure
253conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_pos_is_pos
254instantiation265, 266, 267  ⊢  
  : , :
255instantiation290, 275, 286  ⊢  
  : , :
256assumption  ⊢  
257theorem  ⊢  
 proveit.logic.sets.inclusion.unfold_subset_eq
258instantiation268, 269  ⊢  
  : , :
259axiom  ⊢  
 proveit.physics.quantum.QPE._t_in_natural_pos
260conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_within_complex
261instantiation297, 270, 271  ⊢  
  : , : , :
262instantiation297, 277, 296  ⊢  
  : , : , :
263conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_nonzero_within_real_nonzero
264instantiation297, 272, 273  ⊢  
  : , : , :
265conjecture  ⊢  
 proveit.numbers.addition.add_nat_pos_closure_bin
266instantiation274, 275, 276  ⊢  
  :
267conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat1
268theorem  ⊢  
 proveit.logic.sets.inclusion.relax_proper_subset
269conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.nat_pos_within_real
270conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_within_real
271instantiation297, 277, 286  ⊢  
  : , : , :
272conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.nonzero_int_within_rational_nonzero
273instantiation297, 278, 279  ⊢  
  : , : , :
274conjecture  ⊢  
 proveit.numbers.number_sets.integers.pos_int_is_natural_pos
275instantiation297, 280, 288  ⊢  
  : , : , :
276instantiation281, 282, 283  ⊢  
  : , : , :
277conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.int_within_rational
278conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_nonzero_int
279conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat2
280instantiation284, 286, 287  ⊢  
  : , :
281conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_less_eq
282conjecture  ⊢  
 proveit.numbers.numerals.decimals.less_0_1
283instantiation285, 286, 287, 288  ⊢  
  : , : , :
284conjecture  ⊢  
 proveit.numbers.number_sets.integers.int_interval_within_int
285conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_lower_bound
286instantiation297, 298, 289  ⊢  
  : , : , :
287instantiation290, 291, 292  ⊢  
  : , :
288assumption  ⊢  
289theorem  ⊢  
 proveit.numbers.numerals.decimals.nat1
290conjecture  ⊢  
 proveit.numbers.addition.add_int_closure_bin
291instantiation297, 293, 294  ⊢  
  : , : , :
292instantiation295, 296  ⊢  
  :
293conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_int
294conjecture  ⊢  
 proveit.physics.quantum.QPE._two_pow_t_minus_one_is_nat_pos
295conjecture  ⊢  
 proveit.numbers.negation.int_closure
296instantiation297, 298, 299  ⊢  
  : , : , :
297theorem  ⊢  
 proveit.logic.sets.inclusion.superset_membership_from_proper_subset
298conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_within_int
299conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat2
*equality replacement requirements