QUANTUM-ASSISTED VERIFICATION OF THE FUNCTIONALITY OF ELECTRONIC CIRCUITS
The integration of a quantum computer and proof assistant for encoding and processing proof states in electronic circuits addresses inefficiencies in existing verification methods, improving verification speed and reducing costs through precise functionality checks.
Patent Information
- Application Number
- DE102024115481
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-04
- Publication Date
- 2025-12-04
AI Technical Summary
Existing methods for verifying the functionality of electronic circuits are inefficient and require numerous iterations, leading to increased development time and costs.
A method utilizing a quantum computer and a proof assistant to encode a proof state into a vector of real numbers, process it through a quantum machine learning model, and measure the output quantum state to provide a proof step, which is then processed by a classical computer and the proof assistant to verify the circuit's functionality.
This approach significantly reduces the number of iterations required for verifying circuit functionality, enhancing efficiency and reducing development time and costs by enabling precise verification before physical prototyping.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical field
[0001] Various embodiments relate to computer systems and, in particular, to a method for proving a statement that describes a functionality of an electronic circuit. background
[0002] Technological advancements have led to the development of complex electronic circuits that perform a wide variety of functions. These circuits are integral components of numerous devices, ranging from simple household appliances to advanced computer systems. Mathematical proofs are frequently used in the design and operation of these circuits to ensure their correctness and reliability. However, these proofs need improvement. Summary
[0003] Exemplary embodiments provide a method for proving a statement describing a functionality of an electronic circuit using a quantum computer and a proof assistant, wherein the method comprises: encoding a current proof state into a vector of real numbers of fixed length, the current proof state defining a task for proving at least part of the statement; encoding the vector into a quantum state of a quantum system of the quantum computer; using the quantum state as an input quantum state by a quantum machine learning model to provide an output quantum state, the measurement of which constitutes a proof step for the defined task; measuring the output quantum state, thereby obtaining the proof step for the defined task; and providing the proof step to the proof assistant.Receiving the next evidence state from the evidence assistant in response to the provision of the evidence step.
[0004] Exemplary embodiments provide a computer system for proving a statement describing the functionality of an electronic circuit, using a quantum computer and a proof assistant, wherein the computer system includes the proof assistant, and wherein the computer system is configured to: encode a current proof state into a vector of real numbers of a fixed length, wherein the current proof state defines a task for proving at least part of the statement; control the quantum computer to encode the vector into a quantum state of a quantum system of the quantum computer; control the quantum computer to use the quantum state as an input quantum state by a quantum machine learning model to provide, through the quantum machine learning model, an output quantum state, the measurement of which constitutes a proof step for the defined task.Controlling the quantum computer to measure the initial quantum state in order to obtain the proof step for the defined task, providing the proof step to the proof assistant, receiving a next proof state from the proof assistant in response to the provision of the proof step.
[0005] Exemplary embodiments provide a computer program product containing instructions to cause a computer system to perform at least the following: encoding a current proof state into a vector of real numbers of a fixed length, wherein the current proof state defines a task for proving at least part of a statement describing a functionality of an electronic circuit; controlling the quantum computer to encode the vector into a quantum state of a quantum system of the quantum computer; controlling the quantum computer to use the quantum state as an input quantum state by a quantum machine learning model to provide, through the quantum machine learning model, an output quantum state, the measurement of which constitutes a proof step for the defined task; controlling the quantum computer to measure the output quantum state to obtain the proof step for the defined task.Providing the proof step to the proof assistant, receiving a next proof state from the proof assistant in response to the provision of the proof step. Brief description of the drawings
[0006] The accompanying figures serve to further understand the examples and are an integral part of this description. The figures contain: Fig. 1 a diagram showing a computer system according to an example of the present subject. Fig. 2. A flowchart of a procedure for proving a statement describing a functionality of an electronic circuit, in accordance with an example of the present subject matter. Fig. 3. A block diagram of an exemplary computer system for implementing at least part of the present method in accordance with an example of the present subject matter. Detailed description
[0007] In the following description, specific details such as particular architectures, interfaces, techniques, etc., are presented for illustrative purposes, not as limitations, to facilitate a comprehensive understanding of the examples. However, it will be clear to those skilled in the art that the disclosed subject matter can also be implemented in other examples that differ from these specific details. In some cases, detailed descriptions of known devices and / or methods are omitted to avoid cluttering the description with unnecessary details.
[0008] The present subject matter can facilitate the verification of electronic circuits. For example, it can reduce the number of iterations in prototyping by enabling precise verification of the functionality of electronic circuits. This can significantly reduce the development time and costs associated with multiple iterations. By verifying the circuit's functionality, potential problems can be identified and necessary adjustments made before the circuit is physically built. This saves time and resources that would otherwise be required to build and test multiple physical prototypes.
[0009] The present device can prove the statement of an electronic circuit using a quantum computer and a proof assistant. The statement can describe a functionality of the electronic circuit.
[0010] An electronic circuit can consist of individual electronic components such as resistors, transistors, capacitors, inductors, and diodes, connected by conductive traces or wires through which electric current can flow. The components of the electronic circuit may or may not include a processor, such as a microprocessor. The electronic circuit can be, for example, a discrete circuit. The components of the electronic circuit can include, for example, active components. The combination of components and wires can enable the performance of various operations such as signal amplification, calculations, and data management.
[0011] The statement can describe a functionality of the electronic circuit. For example, the statement can be a specification of what is expected of the electronic circuit. This specification can include properties, requirements, or invariants that the electronic circuit should fulfill. The specification can serve as a precise description of the desired behavior of the electronic circuit. The statement can be written in the formal language of the proof assistant. The statement can be stored as a simple text file or in a database. In an example, the statement can be a compound statement, which may contain a sequence of statements. The sequence of statements can be referred to, for example, as intermediate statements or sub-statements of the compound statement. The combination of the intermediate statements can represent (or correspond to) the compound statement of the electronic circuit. Each intermediate statement can, for example,describe a functionality of a specific part of the electronic circuit.
[0012] A proof assistant can be a software tool that helps in developing formal proofs. It can also be called an interactive theorem prover. A proof assistant can provide a formal language for formulating proofs and a set of rules for manipulating these formal expressions. The proof assistant can, for example, sequentially generate proof states during a proof process. A proof state can represent the current state of a proof within the proof assistant. It can represent a snapshot of the progress in constructing the proof and guide the subsequent application of proof steps. For example, a proof state can contain a goal or sub-goal that needs to be proven.The goal can represent a specific statement that needs to be proven, where the specific statement can be the (entire) statement of the electronic circuit or an intermediate statement to be proven. The proof state can optionally also contain at least one of the following: a definition, a property, or an assumption that may be associated with the goal defined in the proof state. The proof state can be written in the formal language of the proof wizard, using at least one of the following elements: one or more predicates, one or more symbols representing logical connectives, one or more quantifiers, or propositions. The proof state can be updated when proof steps are applied. The proof state can be represented as a structured data object.
[0013] A proof procedure can be used to prove the statement of the electronic circuit with the aid of the quantum computer and the proof assistant. The proof procedure includes the step of encoding a current proof state into a vector of real numbers of fixed length. The current proof state can define a task to prove at least part of the electronic circuit's statement. For example, at the beginning of the proof procedure, the electronic circuit's statement and a description of the electronic circuit can be provided to the proof assistant. In response, the proof assistant can generate the current proof state, which can define the task of proving the entire statement. The electronic circuit's statement and description can, for example, be formalized or expressed using the proof assistant's programming language or syntax.The encoding can be done, for example, by representing each unique proof state with a corresponding unique vector of real numbers of fixed length. The current proof state can be encoded into a vector of real numbers. This vector has a predefined length. By encoding the proof state into a vector, it can be made accessible for manipulation and processing by the quantum computer.
[0014] In one example, encoding the current proof state into a fixed-length vector of real numbers can be achieved by representing different aspects of the proof state as specific values within the vector. For instance, the vector can contain elements representing the goal or other relevant information contained within the proof state. The vector can, for example, be an embedding in a vector space. Thus, any unique combination of symbols (e.g., variables, constants, function symbols) and logical operations (e.g., conjunction, disjunction, negation, equality) that constitute a proof state can be mapped to a unique vector in a high-dimensional vector space. This mapping can be arbitrary or optimized through machine learning.
[0015] In one example, the proof state can be structured to consist of different parts, where one part might contain a declaration or definition of variables, another part assumptions, and a third part the statement to be proven in terms of the other parts. These parts can be provided in a formal language of the proof wizard. In this case, the vector can contain elements that represent, for example, these parts. For simplicity, let's take an example where the proof state might require us to prove that: if a and b are both even, then the sum a + b is also even. The proof state might look like this, for example: (ab : ℕ) (ha : even a) (hb : even b) : even (a + b), where ha and hb are assumptions that can be used to prove that a + b is even.This proof state can be processed, for example, as consisting of a definition part "(ab : ℕ)", an assumption part "(ha : even a) (hb : even b)", and the goal part "even (a + b)". These types of proof state parts can be systematically represented as a vector of real numbers, since they use predefined symbols and concepts from the proof wizard.
[0016] The proof process further includes the step of representing the vector in a quantum state of a quantum system within the quantum computer. For example, the vector of real numbers can be normalized before encoding so that the vector's values lie between zero and one. Once the vector representation of the proof state has been obtained, the quantum computer can be controlled, for instance, to encode this vector into a quantum state of a quantum system. This encoding process can utilize the unique properties of quantum systems, such as superposition and entanglement, to represent the proof state in quantum form. The quantum state then serves as input for a quantum machine learning model.
[0017] The proof procedure further includes the step of using the quantum state as an input quantum state by the quantum machine learning model to generate an output quantum state. The measurement of this output quantum state constitutes a proof step for the defined task. For example, the quantum machine learning model can use the input quantum state to perform computations and generate the output quantum state. The output quantum state represents a proof step for the defined task. The measurement of the output quantum state yields a specific combination of data (e.g., classical bits) that represents the proof step and can be manipulated and interpreted by a classical computer. This data combination can be linked to a corresponding proof step in a predefined mapping.The data combination can be linked to a specific tactic or a command of the proof assistant. The command might contain instructions that the classical computer can use to create the proof step. The tactic might refer to an overarching strategy or rule that can be used to construct the proof step. The classical computer can then use this tactic to generate the proof step. The proof step itself might refer to the individual actions or operations performed during the proof construction process. For example, the proof step could include applying logical rules, introducing or eliminating variables, and any other transformations or inferences during the proof process.By employing machine quantum learning, the device can explore and utilize the computational advantages of quantum systems to improve the efficiency and accuracy of the proof process. This can enable an automated proof process.
[0018] The proof procedure also includes the step of entering the proof step into the proof assistant. The proof step can, for example, be written in a language supported by the proof assistant before it is made available to the proof assistant.
[0019] The proof procedure further includes the step of receiving a next proof state from the proof assistant. The proof assistant generates this next proof state based on the entered proof step. The next proof state can represent the updated status of the proof task after the proof step has been applied. For example, the proof assistant can analyze the proof step and provide the next proof state. The next proof state can indicate the completion of the proof step. Alternatively, the next proof state can contain a goal, corrections to be made, or other relevant information to advance the proof process. The updated proof state can then be used as the current proof state for a subsequent iteration of the proof procedure.
[0020] In one example, the proof procedure can be repeated based on the state of the proof. This involves determining whether the proof of the electronic circuit's statement is complete. To determine if the proof is complete, the received proof state can be examined. The proof state may contain indicators or flags that signal the completion of the proof task. For example, the proof state might contain a specific value or combination of values indicating successful completion of the proof. By analyzing the received proof state, it can be determined whether the proof is complete or if further iterations are required. If the received proof state does not indicate that the proof is complete, the proof procedure can be repeated, using the last received proof state as the current proof state for the repetition of the proof procedure.For this iterative proof process, the proof state can, for example, define a task to prove a sub-statement of the statement. This iterative process can enable the quantum computer and the proof assistant to work step-by-step towards fulfilling the proof task by encoding, processing, and analyzing the proof states. When the received proof state indicates that the proof is complete, the process can stop to indicate that the statement has been proven.
[0021] The functionality of an electronic circuit can comprise a basic function or a combination of basic functions. The basic operation can, for example, include one of the following: the AND operation, the OR operation, and the NOT operation. The proof of the functionality of the electronic circuit can include proof of each of the basic operations or combinations of basic operations involved in the functionality.
[0022] For example, proof testing can be a step in a quality assurance process for electronic circuits. This can enable efficient and accurate manufacturing of electronic circuits and ensure that the products meet the highest quality and reliability standards.
[0023] For example, the electronic circuit is a chip card of an identity document, where the functionality of the electronic circuit is an authentication function and / or an encryption function. The identity document can be any document that can be used to prove a person's identity. The identity document can be provided in the form of a national identity card in standard credit card size or a passport.
[0024] The authentication function can involve comparing the correct sensitive data stored in the electronic circuit with the input data provided by a user as correct sensitive data. Sensitive data can include biometric data such as fingerprints or identification data such as personal identification numbers (PINs). The authentication functionality can include, for example, at least one of the following: fingerprint recognition or PIN-based authentication. For example, the smart card can store the authorized user's fingerprint data, and the authentication process can require the user to place their finger on a fingerprint scanner connected to the smart card for comparison.
[0025] Configuration parameters can be set to control authentication functions. These parameters can be crucial for maintaining the security and integrity of authentication on the smart card. Correctly setting these parameters can help protect against unauthorized access, ensure user privacy, and improve the overall security of the transaction or access control system.
[0026] For PIN-based authentication on the smart card, configuration parameters can include, for example, the PIN format and the minimum and maximum number of digits allowed in the PIN. The PIN format can specify the allowed characters (numeric only or alphanumeric) and any patterns or sequences that are not permitted (e.g., consecutive numbers). For biometric authentication, configuration parameters can include biometric thresholds to adjust sensitivity or acceptance rates to reduce false positives or negatives.
[0027] Following the non-restrictive example of PIN-based authentication, the proof procedure can be carried out as follows. The authentication functionality can, for example, be based on comparing Personal Identification Numbers (PINs) on the chip card. The cardholder's identity can then be verified by comparing the PIN entered by the user with the PIN stored on the chip card. The chip card can contain a secure element (SE) in which the correct PIN is stored. The proof of the authentication functionality can include proof of the correctness of a comparison logic on the chip card, such as for comparing Personal Identification Numbers (PINs). The statement describing the authentication functionality can, for example, be defined as a function for comparing two PINs. This function can represent the comparison logic used by the chip card.The comparison logic can, for example, involve directly comparing an entered PIN with the stored PIN, or a hash comparison where both the stored PIN and the entered PIN are hashed (converted into a fixed-size string, typically using a cryptographic hash function), and the resulting hash values are compared. Following the first example of comparison logic, the PINs being compared can be represented as two lists of digits of specific lengths, as supported by the smart card. The function can, for example, take two lists of natural numbers as input, representing the entered PIN and the stored PIN, and return a true value if they are equal, and a false value otherwise.The function can concatenate the two lists, compare each pair of digits, and accumulate the result, ensuring that all corresponding digits must match for the PINs to be considered equal. The proof procedure can prove that the function correctly detects when two PINs are equal and when they are different. To this end, the statement can represent two properties. The first property can state that if the function returns a true value for two input pins, pin1 and pin2, then pin1 and pin2 are the same list. The second property can state that if the function returns a false value for the two input pins, pin1 and pin2, then pin1 and pin2 are different lists. These properties can be expressed in a formal language of the proof wizard and provided to the proof wizard. In response, the proof wizard can provide a proof state, for example, to prove that the function is equal to the PINs.The entire statement must be proven. The proof state can consist of the statement itself. The proof state can be encoded into a vector of real numbers and then provided to the QML. The QML can output a statement indicating a proof step. The resulting proof step provided by the QML might, for example, involve induction on the lists and show that if all corresponding elements are equal, then the lists themselves are equal. The proof step can be expressed in a formal language of the proof wizard and then provided to it. This interaction can continue until the proof is complete. In the case of hash-based comparison, the statement to be proven might be that if two PINs are equal, then their hashed values are also equal, taking into account the properties of the hash function.
[0028] The encryption function of the smart card can be used to secure communication between the identification document and an external device. For example, the smart card can generate a unique encryption code that is used to encrypt the data transmitted between the identification document and a card reader. This ensures that sensitive information stored on the smart card, such as personal identification numbers or biometric data, remains confidential during data transmission. If the encryption function of the electronic circuit uses an RSA algorithm, for example, the statement describing this function could be a proof of the correctness of RSA decryption. The statement could be, for example: Given prime numbers p, q, n = pq, e, d such that ed ≡ 1 mod ϕ(n) and a message m such that 0 ≤ m <n, ist zu beweisen, dass (m^e)^d = m (mod n).The statement can be provided to the proof assistant. In response, the proof assistant can provide a proof state to, for example, prove the entire statement. The proof state can contain the statement itself. The proof state can be represented as a vector of real numbers and then passed to the QML. The resulting proof step provided by the QML might involve, for example, applying Euler's theorem or using the properties of modular arithmetic. This interaction can continue until the proof is complete.
[0029] According to one example, the procedure further includes: receiving a description of the electronic circuit in the form of a hardware description language code and using the description to determine the statement that describes the functionality of the electronic circuit. For example, the description of the electronic circuit can be provided as a hardware description language code such as VHDL (Very High-Speed Integrated Circuit Hardware Description Language) code, where the statement that describes the functionality of the electronic circuit can be a statement that describes a functionality of the hardware description language code. The proof of the statement includes, for example, proving the correctness of the hardware description language code.The proof of correctness of the hardware description language code can include proving that the code behaves as intended and is free of logical or functional errors. For example, the code can be represented in a proof wizard format, such as using the proof wizard's formal language. Functionality can then be defined in terms of one or more properties of the code. These properties can relate to the functionality of the hardware description language code design (e.g., the correctness of an algorithm implemented in VHDL), its temporal behavior (e.g., the absence of deadlocks), or other aspects such as power consumption or time constraints. These properties can be expressed in the proof wizard's formal language.The proof can consist of using the wizard's proof tactics to determine that the code satisfies the specified properties. This can involve constructing logical arguments within the proof wizard that demonstrate the truth of the properties, utilizing the interactive theorem proof environment.
[0030] According to one example, the functionality of the electronic circuit represents at least one of the following characteristics: a functional correctness of one or more circuit components, an expected behavior of the circuit, or a desired architecture of the electronic circuit.
[0031] For example, the functionality of an electronic circuit represents its expected behavior. This expected behavior can relate to the functionality provided by the circuit, such as authentication, encryption, or other features.
[0032] According to one example, the functionality of an electronic circuit represents a desired architecture of the electronic circuit. The architecture of the electronic circuit can refer to the design or arrangement of the electronic components. The desired architecture might be, for example, the architecture that fulfills a target performance value, such as a target power consumption or a target speed. To demonstrate this functionality with respect to the target power consumption, the behavior of the individual components in the electronic circuit can be modeled with respect to their power consumption. Mathematical models can be created for resistors, capacitors, inductors, transistors, and other components that describe their power consumption.The laws governing electrical circuits that apply to the current design, such as Ohm's law, Kirchhoff's voltage law (KVL), and Kirchhoff's current law (KCL), can be formalized. From these laws, the currents and voltages at various points in the circuit can be derived, which can then be used to calculate the power consumption. The desired power consumption can be defined by specifying a maximum power consumption under certain operating conditions, which is represented as a formal property.
[0033] Using the formalized models and laws, as well as the threshold specification, a statement can be provided. The statement can be constructed based on the aforementioned models and laws. The statement can be provided to the proof assistant. In response, the proof assistant can provide a proof state to, for example, prove the entire statement. The proof state can contain the statement. The proof state can be encoded in the vector of real numbers and provided to QML to generate a proof strategy. The proof strategy can be a proof of whether the electronic circuit meets the target specification for power consumption. This proof can include mathematical inferences about the behavior of the electronic circuit, including induction about the circuit's structure.If the target power consumption is not met, a different circuit architecture can be used, for example, while retaining the same components. Even if two different circuit designs use exactly the same types and number of electronic components to perform a function, they do not necessarily deliver the same performance.
[0034] According to one example, the functionality of an electronic circuit represents at least one of the following: the functional correctness of one or more circuit components. The functional correctness of a component of the electronic circuit may, for example, require that the component have the expected current consumption, e.g., below a certain threshold. For this purpose, the models and laws mentioned above, along with the specification of the threshold, can be formalized, and a proof can be performed of the specific component (as it is placed in the circuit) to determine whether it meets the target specification for current consumption.
[0035] According to one example, the procedure further includes: in response to a finding that the proof is not complete and does not fulfill the desired functionality, the electronic circuit can be adapted accordingly, and the procedure can be repeated to prove the statement of the adapted electronic circuit.
[0036] This example can include a feedback mechanism. This feedback mechanism is triggered if the proof is not complete and the desired functionality is not achieved. The adaptation process may involve changing the code used in the smart card, its configurations, or its settings.
[0037] According to one example, adapting the electronic circuit includes at least one of the following elements: changing the architecture of the electronic circuit's components or adjusting the configuration parameters used to perform the electronic circuit's functionality.
[0038] According to one example, encoding the current proof state into the vector involves: providing a recurrent neural network (RNN) trained using proof states as sequential data to encode the proof state into a fixed-size vector, and inputting the current proof state into the recurrent neural network to obtain the vector.
[0039] During a proof, the proof assistant's state might be represented by a sequence of characters. Since the length of this sequence can change from one proof step to the next, it can be encoded into a fixed-length vector of real numbers. One way to do this is to use a recurrent neural network to encode the proof state into a so-called "context." The recurrent neural network can be specifically designed and trained to process sequential data, such as proof states, and encode them into fixed-size vectors. Training the recurrent neural network might involve using a large dataset of proof states so that it can learn patterns and relationships within the sequential data.
[0040] In an alternative example, instead of a recurrent neural network, other machine learning techniques, such as convolutional neural networks (CNNs) or transformers, can be used to encode the proof state into a fixed-size vector. These alternative techniques may be better suited for certain types of proof states or offer different advantages in terms of computational efficiency or accuracy.
[0041] Once the current proof state is encoded into a vector, it can be used for various purposes. For example, the encoded vector can be used to compare it with other proof states to identify similarities or differences. This can help to detect patterns or recurring weaknesses in the electronic circuit.
[0042] For example, the vector is encoded into the quantum state using amplitude or angle encoding. The choice of encoding can depend, for instance, on the specific model of machine quantum learning.
[0043] In amplitude encoding, the vector can be represented as a linear combination of basis states, where the amplitudes of the states can correspond to the elements of the vector. This encoding technique can enable efficient manipulation and processing of the quantum state. Angle encoding, on the other hand, can represent the vector by encoding the angles between the basis states. The angles can be determined based on the elements of the vector, and the quantum state is then prepared accordingly. Angle encoding can offer advantages in terms of robustness against certain types of errors and noise.
[0044] In an example where the vector to be encoded is [1, 0], the prepared quantum state can be provided by amplitude encoding as a linear combination of the basis states |0〉 and |1〉, where the amplitudes correspond to the elements of the vector. For example, the resulting quantum state could be represented as α|0〉 + β|1〉, where α and β are complex numbers determined by the vector elements.
[0045] Alternatively, in angle encoding, the angles between the basis states can be determined based on the vector elements. For example, if the angles θ1 and θ2 are specified for the basis states |0〉 and |1〉 respectively, the quantum state can be prepared by applying suitable quantum gates to generate the desired angles between the basis states.
[0046] Amplitude and angle encoding are described here as examples, but other quantum encoding techniques can also be used. These alternative techniques could involve different mathematical representations or encoding schemes, depending on the specific requirements and limitations of the system.
[0047] According to one example, the procedure is carried out automatically in response to receiving the statement from the electronic circuit. This can speed up the proof process and reduce user intervention.
[0048] In one example, the proof assistant is configured to run on a classical computer, with the procedure implemented by a hybrid classical algorithm and a quantum algorithm. The execution of the classical algorithm on the classical computer causes the classical computer to carry out the procedure, which includes controlling the quantum computer according to the quantum algorithm to encode the vector, provide the output quantum state, and measure the output quantum state. The present procedure can be hybridized, meaning it can contain a combination of classical and quantum components.
[0049] In one example, the quantum system is defined by a number of qubits, which is determined based on the number of elements in the vector.
[0050] The quantum system can consist of a specific number of qubits, determined based on the number of elements present in the vector. This specification ensures that the quantum system is appropriately dimensioned for the proof process. By keeping the number of qubits constant, the consistency and reliability of the proof procedure can be guaranteed.
[0051] The quantum system can, for example, comprise a set of qubits, where the number of qubits in the set is defined by the size of the vector. If the size of the vector is N, for instance, the quantum system can comprise n qubits, where N = 2 n The quantum state can represent the values of the vector. If the size of the vector is not a power of two, the vector can be padded to a dimension that is a power of two, for example, with predefined values such as zeros.
[0052] In one example, the size of the vector is set to a value that depends on the number of qubits available in the quantum computer.
[0053] The fixed size of the vector is determined based on the number of qubits available in the quantum computer. This ensures that the vector is optimized for the specific resources of the quantum computer used. The fixed size of the vector can, for example, be adapted to the specific requirements of the quantum computer. If, for instance, a different quantum computer with a different number of qubits is used, the size of the vector can be adjusted accordingly. This flexibility allows the method to be adapted to different quantum computing resources.
[0054] According to an example, the procedure prior to proving the electronic circuit's statement includes: training the quantum machine learning model. The training includes: providing a training dataset. The training dataset contains entries, where each entry represents a proof state and a corresponding tactic or instruction for constructing a proof step. Alternatively, the training dataset can be provided such that each entry represents a proof state and a corresponding proof step derived from a tactic. Alternatively, each entry can contain a proof and a corresponding statement.The tactic can refer, for example, to an overarching strategy or rule used to construct the proof step, where the proof step can refer to the individual actions or operations performed during the proof construction process. The quantum machine learning model can be trained to provide a tactic for a given proof state.
[0055] In one example of training data generation, a proof wizard can be used to create a set of proof states for the training dataset. These proof states can represent intermediate steps in the process of proving statements about the electronic circuit. Each proof state is associated with a corresponding tactic in its respective entry in the training dataset, which can be a specific strategy or rule used to create the proof step.
[0056] For example, the training dataset is obtained using the proof assistant employed by the proof method and / or one or more other proof assistants. This can enable the collection of a comprehensive dataset that can be used to train the quantum machine learning model. Alternatively, the training dataset can be obtained using a different proof assistant than the one employed by the proof method. This proof assistant can have different features or capabilities, allowing for the collection of a variety of proof states and tactics. This variation of the training dataset can contribute to improving the robustness and generalizability of the quantum machine learning model.
[0057] In addition to the proof assistant, alternative methods for obtaining the training dataset can also be explored. For example, the dataset can be generated using several automated theorem provers or formal verification tools. These tools can assist in generating proof states and corresponding tactics or statements that can be used as entries in the training dataset.
[0058] In one example of training data generation, the method can create the training dataset by directly providing a set of pre-existing proofs along with their corresponding statements. These proofs serve as examples for the quantum machine learning model to learn from. Once the training dataset is available, the quantum machine learning model is trained. This training process can involve feeding the training dataset into the model and iteratively adjusting its parameters to optimize its performance in proving statements about the electronic circuit.
[0059] In an example of training data generation, the training dataset can be provided based on the area or domain of the electronic circuit to be proven. For instance, if the method is used to prove sorting algorithms, the quantum machine learning model can be trained to demonstrate the correctness of sorting algorithms. The training dataset can be generated using the proof wizard. The proof wizard can generate a set of proof states, each representing a step in proving the correctness of a particular sorting algorithm. These proof states are then paired with the corresponding tactics, which describe the specific strategies used to construct each proof step.Alternatively, if a set of existing proofs for the domain is provided, the method can use these proofs, along with the corresponding statements, directly as a training dataset. For example, a series of proofs demonstrating the correctness of various sorting algorithms can be used as a training dataset.
[0060] In an example of training data generation, the training dataset described above can be updated. To further improve the training process, the procedure can, for example, incorporate various data augmentation techniques. The update can involve manipulating the existing training dataset to generate additional variations of the evidence states and the corresponding tactics or statements. This can be achieved through techniques such as data perturbation, where small changes are made to the existing entries to create new instances. The updated training dataset can include the manipulated entries and, optionally, the existing training dataset. Another approach can involve generating synthetic data using generative models or simulation techniques.The updated training dataset can include the synthetic data and optionally the existing training dataset.
[0061] In another example, alternative approaches can be used to generate the training dataset. For instance, the method can use natural language processing techniques to generate statements that describe the desired properties of the electronic circuit by using the circuit's description.
[0062] In an example of training data generation, at least a portion of the training dataset can be generated using a machine learning model to produce true statements and proofs. This portion can be the training dataset itself, or alternatively, it can be a subset of the entries within the training dataset. The remaining portions of the training dataset can be provided using one or more of the training data generation methods mentioned above. For example, the true statements and proofs can be generated using classical reinforcement learning, hybrid reinforcement learning, quantum reinforcement learning, other classical machine learning techniques, hybrid machine learning techniques, or quantum machine learning techniques.These generated statements and evidence can, for example, be used to enrich an existing database of statements and evidence for the proof assistant, thus providing enough data points to train a quantum large language model "from scratch".
[0063] For example, the machine learning model (for generating true statements) can be trained on a large corpus of existing true statements and proofs. This corpus can be drawn from various reliable and verified databases or repositories. The machine learning model learns the patterns, structures, and logical reasoning behind these true statements and proofs. Once the machine learning model is trained, it can generate new true statements and proofs based on the learned patterns and reasoning. These generated statements and proofs can then be used to construct at least part of the training dataset. Each entry in the training dataset can contain a generated true statement or proof and the corresponding proof step or tactic.Alternatively, the machine learning model can be trained on various subsets of existing true statements and proofs to create specialized training datasets. This allows the machine learning model to be trained for specific domains or problem types, thereby improving its performance and accuracy in those areas. These generated true statements and proofs, along with the corresponding proof steps or tactics, form part of the training dataset. The quantum machine learning model can then use this dataset to learn how to prove the electronic circuit statements using quantum computing techniques.
[0064] In one example, the machine learning model used to create the training dataset can be fine-tuned and optimized based on the specific requirements of the quantum machine learning model being trained. Various machine learning algorithms and architectures can be explored to improve the quality and variety of the generated statements and evidence.
[0065] In addition to using a machine learning model, alternative methods for creating the training dataset can also be considered. Instead of relying solely on a machine learning model, for example, human experts can manually create a set of true statements and evidence covering a wide range of scenarios. These manually created statements and evidence can then be combined with the machine-generated ones to form a comprehensive training dataset.
[0066] During the training process, the quantum machine learning model can learn to recognize patterns and relationships between the proof states and the corresponding tactics or statements. By iteratively adjusting its parameters, the model can become increasingly better at delivering proof steps.
[0067] In a training example, the quantum machine learning model can include an encoding layer. The encoding layer can be configured to encode a fixed-size vector into a quantum state using a set of qubits. The quantum machine learning model can further include a learning layer with one or more trainable or free parameters. The learning layer can be configured to modify the quantum state by applying one or more unitary transformations. The trainable parameters can be, for example, the rotation angles of Pauli rotation gates for individual qubits; that is, the Pauli rotation angle can be applied to qubits of the set of qubits after the quantum state has been generated. The trainable parameters can, for example, include a number of rotation angles, each of which is applied to the set of qubits.The quantum machine learning model can further include a measurement layer for measuring the initial quantum state. A loss function can be evaluated using the proof step represented by the measurement and the corresponding proof step in the training dataset. The quantum machine learning model can be trained by backpropagation using the loss function and an optimization technique performed by the classical computer to verify a convergence criterion. Backpropagation can enable the updating of the learnable parameters by gradient descent. The convergence criterion might, for example, require that the loss function exceeds a threshold.
[0068] In a training example, and assuming the vector is provided by the recurrent neural network described here, the quantum machine learning model and the recurrent neural network can be trained together. For example, in each training iteration, the proof state can be fed into the recurrent neural network to generate the vector. This vector is then provided as input to the quantum machine learning model, and the resulting measurement can provide a clue to the proof step. A loss function can be evaluated using the measurement and the proof step in the training dataset. If the loss function fails to meet a convergence criterion, backpropagation is performed to update both the learnable parameters of the quantum machine learning model and the weights of the recurrent neural network.Updating the weights of the recurrent neural network and the learnable parameters can be done using gradient descent. If the loss function satisfies the convergence criterion, the trained recurrent neural network and the quantum machine learning model can be deployed. The convergence criterion might, for example, require the loss function to exceed a threshold.
[0069] For example, the quantum machine learning model is a quantum reinforcement learning model, where the procedure prior to proving the electronic circuit's statement involves training the quantum reinforcement learning model using the Proof Assistant or another proof assistant as its environment. Reinforcement learning is a type of machine learning in which an agent learns to make decisions by interacting with an environment and receiving feedback in the form of rewards or punishments. The quantum reinforcement learning model utilizes quantum algorithms to optimize the decision-making process and improve learning efficiency. This quantum reinforcement learning model can overcome the limitations of classical methods in efficiently and purposefully searching large action spaces.
[0070] During the training process, the quantum amplification learning model can interact with the proof assistant or another proof assistant serving as its environment. The model can learn to make decisions based on the current proof state provided by the proof assistant and the available tactics to achieve the desired proof outcome. Through iterative training, the model can improve its ability to deliver proof step(s) for a given proof state.
[0071] In addition to the example described, there are alternative approaches that can be used for the training process. For instance, instead of a proof assistant, the method can use a simulated environment specifically designed for training the quantum amplification learning model. This simulated environment can mimic the behavior of a proof assistant and provide a controlled environment for training the model.
[0072] According to one example, the encoding of the current proof state into the vector is performed using a recurrent neural network, with the training of the quantum machine learning model involving the joint training of the quantum machine learning model and the recurrent neural network.
[0073] An RNN can be a type of artificial neural network capable of processing sequential data by maintaining internal memory. This memory allows the RNN to capture and utilize information from previous proof states when encoding the current proof state. RNNs can be implemented using various architectures, such as Long Short-Term Memory (LSTM) or Gated Recurrent Units (GRUs). These architectures enable the RNN to effectively capture long-term dependencies and handle issues with vanishing or exploding gradients that may occur during training.
[0074] Joint training can be performed, for example, as follows. The training dataset consists of entries, each containing a proof state and a corresponding tactic for creating a proof step. The RNN encodes the proof state of a current entry into a vector representation, which is then fed into the quantum machine learning model. The model uses this encoded information to generate the appropriate tactic for the given proof state. Specifically, joint training of the RNN and the QML model can be performed, for example, as follows. The training dataset, particularly the proof states, can be prepared in a sequential format suitable for the RNN component. The training dataset can be compatible with both the RNN and the QML components.In each training iteration, a forward pass through the joint model can be performed, feeding the proof state into the RNN component and passing the RNN's output vector as a quantum state to the QML component. The QML component processes the quantum state and generates the output quantum state, which represents a proof step. The loss between the predicted proof step and the target proof step of the training dataset is determined. The QML component can perform backpropagation to compute the gradients of the parameters with respect to the loss. The parameters of the QML component can be updated, for example, using an optimization algorithm. In the RNN component, backpropagation through time can be performed to compute the gradients of the RNN weights with respect to the loss.Backpropagation Through Time (BPTT) can involve unfolding the RNN over time and propagating the gradients through each time step. The RNN weights can be updated using the optimization algorithm. Repetition can be performed for a specific number of iterations or until convergence is reached.
[0075] For example, the quantum machine learning model is a neural network, a quantum support vector machine (QSVM), a quantum large language model (LLM), or a quantum amplification learning model.
[0076] QSVM is a quantum version of the classical Support Vector Machine (SVM) algorithm, a supervised learning technique used for classification and regression tasks. QSVM utilizes quantum algorithms to perform classification tasks on quantum data. These quantum-based machine learning models can efficiently overcome the limitations of classical methods. In this case, for example, the RNN and QSVM can be trained together, as described in the document arXiv:2308.08467.
[0077] The quantum LLM model can be developed for processing and understanding natural language texts using quantum algorithms. It can be trained on a large corpus of text data and used for tasks such as speech translation, sentiment analysis, and text generation.
[0078] The evidence assistant can be, for example, the LEAN evidence assistant or any other evidence assistant that makes it possible to prove the statements according to the subject matter at hand.
[0079] Fig. Figure 1 is a diagram showing a computer system according to an example from the present subject matter. The computer system 100 comprises a classical computer 101. The computer system 100 may also include a quantum computer 102. An example implementation of the classical computer 101 is shown using the following: Fig. 3 described. The quantum computer 102 can comprise qubits. The qubits can, for example, be part of the quantum registers 105.1 to 105.L. The classical computer 101 can be configured to control the operation of the quantum computer 102. The classical computer 101 can use an interface 103 with the quantum computer 102 to control the operation of the quantum computer 102 in accordance with an example of the present subject matter. The classical computer can include a proof assistant 107. The proof assistant can be, for example, the LEAN proof assistant or another proof assistant with which the statements according to the present subject matter can be proven.
[0080] Fig. Figure 2 is a flowchart of a procedure for proving a statement describing the functionality of an electronic circuit, using a quantum computer and a proof assistant, according to an example from the present subject matter. For clarification: The in Fig. The two described procedures can be found in the Fig. The procedure can be implemented in the system shown in point 1, but is not limited to this implementation. For example, the procedure can be executed by computer system 100.
[0081] In step 201, the current proof state can be encoded into a vector of real numbers of fixed length. The current proof state defines a task for proving at least part of the statement. In step 203, the vector can be encoded into a quantum state of a quantum system of the quantum computer (e.g., 102). For example, the classical computer 101 can control the quantum computer 102 to execute step 203. In step 205, the quantum state can be used as an input quantum state by a quantum machine learning model to generate an output quantum state, where the measurement of the output quantum state constitutes a proof step for the defined task. The output quantum state can be measured, for example, in step 205. For instance, the classical computer 101 can control the quantum computer 102 to execute step 205. The proof step can be passed to the proof assistant in step 207 (e.g.107). In response to the provision of the evidence step, a next evidence state can be received from the evidence assistant 107 in step 209. In step 211, it can be determined whether the received evidence state indicates that the evidence is complete. If it is determined that the evidence is not complete, the received evidence state can be used as the current evidence state for repeating procedural steps 201 to 211. In response to the determination that the evidence is complete, the procedure can be terminated.
[0082] Fig. Figure 3 is a block diagram of an exemplary computer system for implementing at least part of the present procedure in accordance with an example of the present subject matter.
[0083] The components of the 702 computer system can include, among other things, one or more processors or processing units 703, a storage system 711, a memory unit 705, and a bus 707 that connects various system components, including the memory unit 705, to the processor 703. The storage system 711 can, for example, include a hard disk drive (HDD). The memory unit 705 can contain computer-readable media in the form of volatile memory, such as random-access memory (RAM) and / or cache memory.
[0084] The Computer System 702 can also communicate with one or more external devices, such as a keyboard, pointing device, display 713, etc., enabling a user to interact with the Computer System 702, and / or with any devices (e.g., network card, modem, etc.) that allow the Computer System 702 to communicate with one or more other computer devices. Such communication can occur via the I / O interface(s) 719. Furthermore, the Computer System 702 can communicate with one or more networks, such as a local area network (LAN), a wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 709. As shown, the network adapter 709 communicates with the other components of the Computer System 702 via the bus 707.
[0085] The 705 memory unit is configured to store applications that can be executed on the 703 processor. The 705 memory unit can, for example, contain an operating system and one or more application programs. The application programs contain instructions that, when executed, carry out the operation described in the 703 processor. Fig. The 2 described procedures enable this.
[0086] As will be clear to those skilled in the art, aspects of the present invention can be embodied as a device, a method, a computer program, or a computer program product. Accordingly, aspects of the present invention can take the form of a purely hardware variant, a purely software variant (including firmware, resident software, microcode, etc.), or a variant that combines software and hardware aspects, which may be generally referred to here as a "circuit," "module," or "system." Furthermore, aspects of the present invention can take the form of a computer program product embodied in one or more computer-readable media containing computer-executable code. A computer program comprises the computer-executable code or "program instructions."
[0087] Any combination of one or more computer-readable media can be used. The computer-readable medium can be a computer-readable storage medium. A "computer-readable storage medium," as used here, includes any tangible storage medium capable of storing instructions that can be executed by a processor of a computing device. The computer-readable storage medium can be referred to as a computer-readable non-transitory storage medium. The computer-readable storage medium can also be referred to as a concrete computer-readable medium. In some embodiments, a computer-readable storage medium may also be capable of storing data that can be accessed by the processor of the data processing system.
[0088] Computer memory is an example of a computer-readable storage medium. Computer memory is any memory that a processor can directly access. Computer mass storage is another example of a computer-readable storage medium. Computer mass storage is any non-volatile, computer-readable storage medium. In some embodiments, computer mass storage can also be computer memory, or vice versa.
[0089] A "processor," as used here, comprises an electronic component capable of executing a program, machine-executable instruction, or computer-executable code. When the data processing system is described as comprising "a processor," this should be understood to mean that it may contain more than one processor or processing core. The processor may, for example, be a multi-core processor. A processor can also refer to a collection of processors within a single computer system or distributed across multiple computer systems. The term "computing device" should also be interpreted as potentially referring to a collection or network of computing devices, each comprising one or more processors.The executable computer code can be executed by multiple processors, which may be located in the same computer device or even distributed across multiple computer devices.
[0090] Computer-executable code may comprise machine-executable instructions or a program that causes a processor to execute an aspect of the present invention. Computer-executable code for performing operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++, or similar languages, and conventional procedural programming languages such as the programming language "C" or similar languages, and compiled into machine-executable instructions. In some cases, the computer-executable code may be in the form of a high-level language or in pre-compiled form and used in conjunction with an interpreter that generates the machine-executable instructions on the fly.
[0091] In general, program instructions can be executed on one processor or on multiple processors. In the case of multiple processors, they can be distributed across several different units. Each processor could execute a portion of the instructions intended for that unit. Therefore, when referring to a system or process involving multiple units, the computer program or program instructions are to be understood as being capable of being executed by a processor assigned to or associated with the respective unit.
Claims
[1] Method for proving a statement describing a functionality of an electronic circuit using a quantum computer (102) and a proof assistant (107), wherein the method comprises: Encoding (201) a current proof state into a vector of real numbers of fixed length, wherein the current proof state defines a task to prove at least part of the statement; Encoding (203) the vector into a quantum state of a quantum system of the quantum computer; Using (205) the quantum state as an input quantum state by a quantum machine learning model to provide an output quantum state through the quantum machine learning model, the measurement of which constitutes a proof step for the defined task; Measurement of the initial quantum state to obtain the proof step for the defined task; Providing (207) the evidentiary step to the Evidence Assistant; in response to the provision of the evidence step, receiving (209) a next evidence state from the evidence assistant. [2] Method according to claim 1, wherein the electronic circuit is a chip card of an identity document, wherein the functionality is an authentication functionality and / or an encryption functionality. [3] A method according to any of the preceding claims, wherein the functionality is at least one of the following: a desired architecture of the electronic circuit that provides a target value for the performance of the electronic circuit; a functional correctness of one or more components of the electronic circuit; or an expected behavior of the electronic circuit. [4] The method according to any of the preceding claims, further comprising Receiving a description of the electronic circuit in the form of a hardware description language code; Using the description to determine the statement that describes the functionality of the electronic circuit. [5] The method according to any of the preceding claims, further comprising: in response to a finding that the evidence is incomplete and the functionality is not fulfilled; appropriate adjustment of the electronic circuit; and Repeat the method to prove the statement of the adapted circuit. [6] Method according to claim 5, wherein the adaptation of the electronic circuit comprises at least one of the following: changing the architecture of the components of the electronic circuit; or adapting configuration parameters used to perform the functionality. [7] The method according to any of the preceding claims, further comprising determining whether the received state of evidence indicates that the evidence is complete; In response to the finding that the evidence is not complete, to use the received state of evidence as the current state of evidence and to repeat the procedure. [8] The method according to any of the preceding claims, comprising encoding the current state of proof into the vector: Providing a recurrent neural network trained using proof states as sequential data to encode the proof state into a fixed-size vector; Inputting the current proof state into the recurrent neural network to preserve the vector. [9] The method according to any of the preceding claims, wherein the encoding of the vector into the quantum state is carried out using amplitude encoding or angle encoding. [10] The method according to any of the preceding claims, wherein the method is carried out automatically. [11] Method according to any of the preceding claims, wherein the proof assistant is configured to run on a classical computer, the method being implemented by a hybrid quantum-classical algorithm, the execution of which on the classical computer causes the classical computer to perform the method comprising controlling the quantum computer to encode the vector, provide the output quantum state and measure the output quantum state. [12] Method according to any of the preceding claims, wherein the quantum system is defined by a number of qubits which is determined on the basis of the number of elements of the vector. [13] The method according to one of the preceding claims, wherein the size of the vector is fixed to a value which depends on the available number of qubits in the quantum computer. [14] The method according to any of the preceding claims, wherein the method prior to proving the statement comprises training the quantum machine learning model, the training comprising: Providing a training dataset, wherein the training dataset comprises entries, wherein Each entry contains a state of evidence and a corresponding tactic for creating a step of evidence; or Each entry contains evidence and a corresponding explanation; Training the quantum machine learning model to prove statements using the training dataset. [15] Method according to claim 14, wherein the training data set is obtained using the evidence assistant and / or one or more other evidence assistants. [16] Method according to claim 14 or 15, further comprising generating at least part of the training data set using a machine learning model to generate true statements and evidence. [17] Method according to any one of the preceding claims 1 to 13, wherein the quantum machine learning model is a quantum amplification learning model, wherein the method comprises training the quantum amplification learning model using the proof assistant or another proof assistant as an environment prior to proving the statement of the computer program. [18] Method according to any one of the preceding claims 14 to 17, wherein the encoding of the current proof state into the vector is performed using a recurrent neural network, wherein the training of the quantum machine learning model comprises the joint training of the quantum machine learning model and the recurrent neural network. [19] The method according to any of the preceding claims, wherein the quantum machine learning model is a quantum neural network, a quantum support vector machine (QSVM), a quantum large language model or a quantum amplification learning model. [20] Computer system (100, 702) for proving a statement describing a functionality of an electronic circuit, using a quantum computer (102) and a proof assistant (107), wherein the computer system includes the proof assistant, wherein the computer system (100, 702) is configured to: Encoding a current proof state into a vector of real numbers of fixed length, where the current proof state defines a task to prove at least part of the statement; Controlling the quantum computer to encode the vector into a quantum state of a quantum system of the quantum computer; Controlling the quantum computer to use the quantum state as an input quantum state by a quantum machine learning model in order to provide an output quantum state through the quantum machine learning model, the measurement of which represents a proof step for the defined task; Controlling the quantum computer to measure the initial quantum state in order to obtain the proof step for the defined task; Providing the evidentiary step to the evidence assistant; in response to the provision of the evidence step, to receive a next evidence state from the evidence assistant. [21] The computer system according to claim 20, comprising the quantum computer. [22] A computer program product containing instructions to cause a computer system to perform at least the following: Encoding a current proof state into a vector of real numbers of a fixed length, where the current proof state defines a task to prove at least part of a statement that describes a functionality of an electronic circuit; Controlling the quantum computer to encode the vector into a quantum state of a quantum system of the quantum computer; Controlling the quantum computer to use the quantum state as an input quantum state by a quantum machine learning model in order to provide an output quantum state through the quantum machine learning model, the measurement of which represents a proof step for the defined task; Controlling the quantum computer to measure the initial quantum state in order to obtain the proof step for the defined task; Providing the proof step to the proof assistant; in response to providing the proof step, receiving the next proof state from the proof assistant.
Citation Information
Cited By
Methods and systems for enhancing detection of fraudulent authentication data
US12695590B2
Methods and systems for enhancing detection of fraudulent authentication data
US12717887B2
Methods and systems for enhancing detection of fraudulent authentication data
US20260220242A1