AI 용어집
인공지능 완전 사전
Deductive program synthesis
Method of automatic generation of programs from formal specifications using logical deduction rules to transform preconditions and postconditions into executable code.
Formal specification
Mathematically precise description of the expected behavior of a system or program, using formal notations like Z, VDM, or B to define properties and constraints.
Weakest precondition calculus
Technique invented by Dijkstra to determine the minimal condition that must be true before the execution of a program to guarantee a given postcondition, fundamental in formal verification.
Hoare logic
Formal system of inference rules allowing reasoning about the correctness of computer programs through Hoare triples {P}S{Q} linking preconditions, statements, and postconditions.
Design by contract
Software design approach where interactions between components are governed by formal obligations (preconditions, postconditions, and invariants) defining mutual responsibilities.
Loop invariant
Logical property that remains true before and after each iteration of a loop, essential for proving the termination and correctness of iterative programs.
Resolution in logic
Complete inference rule for first-order logic, allowing automatic deduction of new clauses from sets of existing clauses.
Denotational semantics
Mathematical approach giving precise meaning to programs by translating them into mathematical objects (functions, sets), essential for formal synthesis.
Rewriting system
Set of rules transforming terms into other terms, used to model computations and optimizations in program synthesis and transformation.
Floyd's method
Pioneering program verification technique using assertions and invariants to prove the correctness of structured programs, precursor to modern methods.
Dependent type system
System where types can depend on values, allowing expression of complex properties directly in the type system and ensuring correctness at the typing level.
Example-guided synthesis
Hybrid approach combining deductive reasoning and learning from examples to generate programs satisfying both formal specifications and observed behaviors.
Relational abstraction
Technique representing program behavior by relations between states, facilitating reasoning about properties and synthesis of correct programs.
Abstract interpretation
Semantic approximation theory enabling static analysis of program properties by computing on abstract rather than concrete domains.
Program invariant
Logical property preserved by program execution, used to prove partial and total correctness in deductive synthesis methods.
Equational reasoning
Proof method based on transformation of equations by rewriting, fundamental for synthesis of functional and algebraic programs.
Algebraic specification
Formal approach defining data types and operations through algebraic axioms, enabling automatic synthesis of correct implementations.
Higher-order logic
Extension of first-order logic allowing quantification over predicates and functions, essential for expressing complex specifications in synthesis.