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

from proveit import defaults
from proveit import f, m, n, x, y, A
from proveit.logic import InSet, NotEquals
from proveit.logic.sets.functions.bijections import bijective_by_uniqueness
from proveit.physics.quantum.QPE import (_t, _s, _t_in_natural_pos, _s_in_nat_pos,
                                         _sample_space_def)
In [2]:
%proving _sample_space_bijection
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
_sample_space_bijection:
(see dependencies)
In [3]:
_sample_space_def

We want to use $\Omega$ as our shorthand for the sample space:

In [4]:
defaults.replacements = set([_sample_space_def.derive_reversed()])
defaults.replacements:
In [5]:
lambda_map = _sample_space_bijection.element
lambda_map:
In [6]:
domain = _sample_space_bijection.domain.domain
domain:

In order to show that the image of the map is a bijection, we want to show that distinct elements of the domain map to distinct quantum circuits.

In [7]:
assumptions = [InSet(m, domain), InSet(n, domain), NotEquals(m, n)]
assumptions:
In [8]:
NotEquals(lambda_map.apply(m), lambda_map.apply(n)).prove(
    assumptions=assumptions)
, ,  ⊢  
In [9]:
bijective_by_uniqueness
In [10]:
bijective_by_uniqueness.instantiate(
    {f:lambda_map, A:domain, x:m, y:n}).derive_consequent()
_sample_space_bijection has been proven.  Now simply execute "%qed".
In [11]:
%qed
proveit.physics.quantum.QPE._sample_space_bijection has been proven.
Out[11]:
 step typerequirementsstatement
0modus ponens1, 2  ⊢  
1instantiation3, 4*, 5*  ⊢  
  : , : , : , :
2generalization6  ⊢  
3conjecture  ⊢  
 proveit.logic.sets.functions.bijections.bijective_by_uniqueness
4instantiation7, 8*, ,  ⊢  
  : , :
5instantiation9, 10*  ⊢  
  : , :
6axiom  ⊢  
 proveit.logic.booleans.true_axiom
7axiom  ⊢  
 proveit.logic.equality.not_equals_def
8instantiation11, 12, ,  ⊢  
  :
9axiom  ⊢  
 proveit.logic.sets.functions.images.set_image_def
10instantiation133, 13  ⊢  
  : , :
11axiom  ⊢  
 proveit.logic.booleans.eq_true_intro
12instantiation14, 15, ,  ⊢  
  : , :
13axiom  ⊢  
 proveit.physics.quantum.QPE._sample_space_def
14theorem  ⊢  
 proveit.logic.equality.unfold_not_equals
15modus ponens16, 17, ,  ⊢  
16instantiation18, 69, 136, 19, 20, 21, 22, 23, 24, 25  ⊢  
  : , : , : , :
17instantiation26, 69, 27, 28, 29, ,  ⊢  
  : , : , :
18conjecture  ⊢  
 proveit.physics.quantum.circuits.qcircuit_neq
19instantiation117, 30, 32, 33  ⊢  
  : , : , : , :
20instantiation117, 31, 32, 33  ⊢  
  : , : , : , :
21instantiation117, 34, 77, 37  ⊢  
  : , : , : , :
22instantiation117, 35, 77, 37  ⊢  
  : , : , : , :
23instantiation117, 36, 77, 37  ⊢  
  : , : , : , :
24instantiation117, 75, 77, 37  ⊢  
  : , : , : , :
25instantiation117, 76, 77, 37  ⊢  
  : , : , : , :
26conjecture  ⊢  
 proveit.core_expr_types.expr_arrays.varray_neq_via_any_elem_neq
27instantiation179  ⊢  
  : , : , : , :
28instantiation179  ⊢  
  : , : , : , :
29instantiation38, 127, 200, 39, 201, 40, 41, 42, 43, 44, ,  ⊢  
  : , : , : , : , :
30instantiation89, 46, 45, 48, 49, 92, 93, 57, 50*  ⊢  
  : , : , : , :
31instantiation89, 46, 47, 48, 49, 92, 93, 57, 50*  ⊢  
  : , : , : , :
32instantiation133, 51  ⊢  
  : , :
33instantiation133, 52  ⊢  
  : , :
34instantiation89, 90, 53, 159, 148, 92, 93, 108*, 151*  ⊢  
  : , : , : , :
35instantiation89, 90, 54, 55, 56, 92, 57, 108*, 84*  ⊢  
  : , : , : , :
36instantiation89, 90, 58, 159, 148, 92, 93, 108*, 151*  ⊢  
  : , : , : , :
37instantiation133, 59  ⊢  
  : , :
38conjecture  ⊢  
 proveit.logic.booleans.disjunction.or_if_any
39instantiation153  ⊢  
  : , : , :
40instantiation207  ⊢  
  : , :
41instantiation207  ⊢  
  : , :
42instantiation207  ⊢  
  : , :
43instantiation207  ⊢  
  : , :
44instantiation60, 61, 62, 63, 64, 65, ,  ⊢  
  : , : , :
45instantiation97  ⊢  
  : , : , : , : , : , : , : , :
46conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat8
47instantiation97  ⊢  
  : , : , : , : , : , : , : , :
48instantiation97  ⊢  
  : , : , : , : , : , : , : , :
49instantiation97  ⊢  
  : , : , : , : , : , : , : , :
50instantiation220, 66, 67  ⊢  
  : , : , :
51instantiation156, 257, 255, 200, 148, 201, 132, 193, 181  ⊢  
  : , : , : , : , : , :
52instantiation68, 69, 70, 111  ⊢  
  : , : , :
53instantiation216  ⊢  
  : , :
54instantiation216  ⊢  
  : , :
55instantiation216  ⊢  
  : , :
56instantiation216  ⊢  
  : , :
57instantiation109, 163, 84  ⊢  
  : , : , :
58instantiation216  ⊢  
  : , :
59instantiation110, 111  ⊢  
  : , :
60conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_neq_via_any_elem_neq
61instantiation224, 71, 72  ⊢  
  : , :
62instantiation220, 73, 74  ⊢  
  : , : , :
63instantiation117, 75, 77, 78  ⊢  
  : , : , : , :
64instantiation117, 76, 77, 78  ⊢  
  : , : , : , :
65instantiation95, 167, 163, 200, 142, 139, 201, 79, ,  ⊢  
  : , : , : , : , : , :
66instantiation80, 81, 82, 83, 108, 151, 84  ⊢  
  : , : , : , :
67instantiation117, 85, 86, 87  ⊢  
  : , : , : , :
68conjecture  ⊢  
 proveit.core_expr_types.tuples.len_of_ranges_with_repeated_indices_from_1
69conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat4
70instantiation166, 215  ⊢  
  : , :
71instantiation109, 260, 108  ⊢  
  : , : , :
72instantiation109, 223, 151  ⊢  
  : , : , :
73instantiation239, 108  ⊢  
  : , : , :
74instantiation239, 151  ⊢  
  : , : , :
75instantiation89, 90, 88, 159, 148, 92, 93, 108*, 151*  ⊢  
  : , : , : , :
76instantiation89, 90, 91, 159, 148, 92, 93, 108*, 151*  ⊢  
  : , : , : , :
77instantiation195  ⊢  
  :
78instantiation133, 94  ⊢  
  : , :
79instantiation95, 200, 167, 257, 201, 142, 96, ,  ⊢  
  : , : , : , : , : , :
80axiom  ⊢  
 proveit.core_expr_types.operations.operands_substitution
81conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat8
82instantiation97  ⊢  
  : , : , : , : , : , : , : , :
83instantiation97  ⊢  
  : , : , : , : , : , : , : , :
84instantiation220, 98, 99  ⊢  
  : , : , :
85instantiation117, 100, 101, 102  ⊢  
  : , : , : , :
86instantiation199, 200, 215, 201, 103, 105, 193, 181, 104*  ⊢  
  : , : , : , : , : , :
87instantiation199, 257, 215, 200, 105, 201, 106, 181, 107*  ⊢  
  : , : , : , : , : , :
88instantiation216  ⊢  
  : , :
89conjecture  ⊢  
 proveit.core_expr_types.tuples.general_len
90conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat2
91instantiation216  ⊢  
  : , :
92instantiation109, 167, 108  ⊢  
  : , : , :
93instantiation109, 163, 151  ⊢  
  : , : , :
94instantiation110, 111  ⊢  
  : , :
95conjecture  ⊢  
 proveit.logic.booleans.disjunction.disassociate
96instantiation112, 113, 114, 115, ,  ⊢  
  : , :
97conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_8_typical_eq
98instantiation239, 116  ⊢  
  : , : , :
99instantiation117, 118, 119, 120  ⊢  
  : , : , : , :
100instantiation126, 257, 121, 122, 193, 181  ⊢  
  : , : , : , : , : , : , :
101instantiation126, 255, 127, 123, 124, 125, 193, 181  ⊢  
  : , : , : , : , : , : , :
102instantiation126, 127, 257, 128, 129, 193, 181  ⊢  
  : , : , : , : , : , : , :
103instantiation179  ⊢  
  : , : , : , :
104instantiation133, 130, 135*  ⊢  
  : , :
105instantiation179  ⊢  
  : , : , : , :
106instantiation131, 132, 193  ⊢  
  : , :
107instantiation133, 134, 135*  ⊢  
  : , :
108instantiation176, 204, 193, 177  ⊢  
  : , : , :
109theorem  ⊢  
 proveit.logic.equality.sub_left_side_into
110conjecture  ⊢  
 proveit.core_expr_types.tuples.range_from1_len
111instantiation258, 188, 136  ⊢  
  : , : , :
112conjecture  ⊢  
 proveit.logic.booleans.disjunction.or_if_left
113instantiation138, 260, 142, 137  ⊢  
  : , :
114instantiation138, 223, 139, 140  ⊢  
  : , :
115instantiation141, 260, 142, 143, ,  ⊢  
  : , :
116instantiation144, 193, 204  ⊢  
  : , :
117conjecture  ⊢  
 proveit.logic.equality.four_chain_transitivity
118instantiation147, 200, 255, 201, 148, 145, 193, 181, 146, 204  ⊢  
  : , : , : , : , : , :
119instantiation147, 255, 257, 148, 149, 193, 181, 171, 174, 204  ⊢  
  : , : , : , : , : , :
120instantiation220, 150, 151  ⊢  
  : , : , :
121conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat5
122instantiation152  ⊢  
  : , : , : , : , :
123instantiation216  ⊢  
  : , :
124instantiation216  ⊢  
  : , :
125instantiation153  ⊢  
  : , : , :
126conjecture  ⊢  
 proveit.numbers.addition.leftward_commutation
127conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat3
128instantiation153  ⊢  
  : , : , :
129instantiation153  ⊢  
  : , : , :
130instantiation156, 200, 215, 257, 201, 157, 204, 193, 154*  ⊢  
  : , : , : , : , : , :
131conjecture  ⊢  
 proveit.numbers.multiplication.mult_complex_closure_bin
132instantiation258, 218, 155  ⊢  
  : , : , :
133theorem  ⊢  
 proveit.logic.equality.equals_reversal
134instantiation156, 200, 215, 257, 201, 157, 204, 181, 158*  ⊢  
  : , : , : , : , : , :
135instantiation199, 200, 255, 201, 159, 204, 160*  ⊢  
  : , : , : , : , : , :
136instantiation224, 260, 223  ⊢  
  : , :
137modus ponens161, 162  ⊢  
138conjecture  ⊢  
 proveit.logic.booleans.disjunction.closure
139instantiation166, 163  ⊢  
  : , :
140modus ponens164, 165  ⊢  
141conjecture  ⊢  
 proveit.logic.booleans.disjunction.any_if_all
142instantiation166, 167  ⊢  
  : , :
143modus ponens168, 169, ,  ⊢  
144conjecture  ⊢  
 proveit.numbers.negation.distribute_neg_through_binary_sum
145instantiation216  ⊢  
  : , :
146instantiation170, 171, 174  ⊢  
  : , :
147conjecture  ⊢  
 proveit.numbers.addition.disassociation
148instantiation216  ⊢  
  : , :
149instantiation216  ⊢  
  : , :
150instantiation172, 200, 257, 255, 201, 173, 193, 181, 174, 204, 175  ⊢  
  : , : , : , : , : , : , : , :
151instantiation176, 204, 181, 177  ⊢  
  : , : , :
152conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_5_typical_eq
153conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_3_typical_eq
154instantiation180, 193  ⊢  
  :
155instantiation258, 237, 178  ⊢  
  : , : , :
156conjecture  ⊢  
 proveit.numbers.multiplication.distribute_through_sum
157instantiation179  ⊢  
  : , : , : , :
158instantiation180, 181  ⊢  
  :
159instantiation216  ⊢  
  : , :
160instantiation220, 182, 183  ⊢  
  : , : , :
161instantiation189, 252, 253, 190  ⊢  
  : , : , : , :
162generalization184  ⊢  
163instantiation258, 188, 223  ⊢  
  : , : , :
164instantiation189, 252, 185, 186  ⊢  
  : , : , : , :
165generalization187  ⊢  
166conjecture  ⊢  
 proveit.core_expr_types.tuples.range_from1_len_typical_eq
167instantiation258, 188, 260  ⊢  
  : , : , :
168instantiation189, 252, 253, 190  ⊢  
  : , : , : , :
169generalization191, ,  ⊢  
170conjecture  ⊢  
 proveit.numbers.addition.add_complex_closure_bin
171instantiation192, 193  ⊢  
  :
172conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_general
173instantiation216  ⊢  
  : , :
174instantiation258, 218, 194  ⊢  
  : , : , :
175instantiation195  ⊢  
  :
176conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_triple_32
177instantiation195  ⊢  
  :
178instantiation258, 249, 196  ⊢  
  : , : , :
179conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_4_typical_eq
180conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_left
181instantiation258, 218, 197  ⊢  
  : , : , :
182instantiation239, 198  ⊢  
  : , : , :
183instantiation199, 200, 255, 257, 201, 202, 203, 204, 205*  ⊢  
  : , : , : , : , : , :
184instantiation207  ⊢  
  : , :
185instantiation258, 259, 223  ⊢  
  : , : , :
186instantiation208, 206  ⊢  
  :
187instantiation207  ⊢  
  : , :
188conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.nat_pos_within_nat
189conjecture  ⊢  
 proveit.logic.booleans.conjunction.conjunction_from_quantification
190instantiation208, 209  ⊢  
  :
191instantiation210, 211, 212, , ,  ⊢  
  : , : , : , :
192conjecture  ⊢  
 proveit.numbers.negation.complex_closure
193instantiation258, 218, 213  ⊢  
  : , : , :
194instantiation258, 237, 214  ⊢  
  : , : , :
195axiom  ⊢  
 proveit.logic.equality.equals_reflexivity
196instantiation258, 256, 215  ⊢  
  : , : , :
197instantiation233, 234, 223  ⊢  
  : , : , :
198conjecture  ⊢  
 proveit.numbers.numerals.decimals.add_1_1
199conjecture  ⊢  
 proveit.numbers.addition.association
200axiom  ⊢  
 proveit.numbers.number_sets.natural_numbers.zero_in_nats
201conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_len_0_typical_eq
202instantiation216  ⊢  
  : , :
203instantiation258, 218, 217  ⊢  
  : , : , :
204instantiation258, 218, 219  ⊢  
  : , : , :
205instantiation220, 221, 222  ⊢  
  : , : , :
206instantiation224, 223, 225  ⊢  
  : , :
207conjecture  ⊢  
 proveit.logic.equality.not_equals_is_bool
208conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_pos_lower_bound
209instantiation224, 260, 225  ⊢  
  : , :
210conjecture  ⊢  
 proveit.physics.quantum.circuits.qcircuit_output_part_neq
211instantiation226, 227, 228  ⊢  
  :
212instantiation229, 260, 230, 231, 232, ,  ⊢  
  : , : , :
213instantiation233, 234, 260  ⊢  
  : , : , :
214instantiation258, 249, 235  ⊢  
  : , : , :
215conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat4
216conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_2_typical_eq
217instantiation258, 237, 236  ⊢  
  : , : , :
218conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_within_complex
219instantiation258, 237, 238  ⊢  
  : , : , :
220axiom  ⊢  
 proveit.logic.equality.equals_transitivity
221instantiation239, 240  ⊢  
  : , : , :
222conjecture  ⊢  
 proveit.numbers.numerals.decimals.add_3_1
223axiom  ⊢  
 proveit.physics.quantum.QPE._s_in_nat_pos
224conjecture  ⊢  
 proveit.numbers.addition.add_nat_pos_closure_bin
225conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat1
226conjecture  ⊢  
 proveit.numbers.number_sets.integers.pos_int_is_natural_pos
227instantiation258, 241, 254  ⊢  
  : , : , :
228instantiation242, 243, 244  ⊢  
  : , : , :
229conjecture  ⊢  
 proveit.physics.quantum.algebra.num_ket_neq
230assumption  ⊢  
231assumption  ⊢  
232assumption  ⊢  
233theorem  ⊢  
 proveit.logic.sets.inclusion.unfold_subset_eq
234instantiation245, 246  ⊢  
  : , :
235instantiation247, 252  ⊢  
  :
236instantiation258, 249, 248  ⊢  
  : , : , :
237conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_within_real
238instantiation258, 249, 252  ⊢  
  : , : , :
239axiom  ⊢  
 proveit.logic.equality.substitution
240conjecture  ⊢  
 proveit.numbers.numerals.decimals.add_2_1
241instantiation250, 252, 253  ⊢  
  : , :
242conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_less_eq
243conjecture  ⊢  
 proveit.numbers.numerals.decimals.less_0_1
244instantiation251, 252, 253, 254  ⊢  
  : , : , :
245theorem  ⊢  
 proveit.logic.sets.inclusion.relax_proper_subset
246conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.nat_pos_within_real
247conjecture  ⊢  
 proveit.numbers.negation.int_closure
248instantiation258, 256, 255  ⊢  
  : , : , :
249conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.int_within_rational
250conjecture  ⊢  
 proveit.numbers.number_sets.integers.int_interval_within_int
251conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_lower_bound
252instantiation258, 256, 257  ⊢  
  : , : , :
253instantiation258, 259, 260  ⊢  
  : , : , :
254assumption  ⊢  
255conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat2
256conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_within_int
257theorem  ⊢  
 proveit.numbers.numerals.decimals.nat1
258theorem  ⊢  
 proveit.logic.sets.inclusion.superset_membership_from_proper_subset
259conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_int
260axiom  ⊢  
 proveit.physics.quantum.QPE._t_in_natural_pos
*equality replacement requirements