170 likes | 287 Vues
This presentation provides a detailed introduction to Yices, a high-performance SMT solver, and highlights its capabilities in solving complex mathematical problems involving propositional formulas and various types of data structures. Additionally, the document introduces the University of Information Technology (UIT) and the Software Engineering Faculty, outlining their commitment to training high-quality IT professionals and promoting research in software development processes. Personal insights from lecturer Nguyen Thi Thanh Truc on teaching experiences and research initiatives are also included.
E N D
PRESENTATION UNIVERSITY OF INFORMATION TECHNOLOGYSOFTWARE ENGINEERING FACULTY Personal Information Introduction Organization Introduction Yices tool Summary Chapter 1 & Chapter 3 DPLL Software & Hardware Presented by NGUYEN THI THANH TRUC
Personal information • Name: NGUYEN THI THANH TRUC • Position: Lecturer, Software Engineering Faculty, UIT-HCM (since 2002 – 2006- Now: CITDUIT) • Teaching: ITPM, Web application, Introduction of Software Engineering, Software Maintenance,… • Doing research: Software Development Process, Software Release Planning, project management, • Out-sourcing in US for 2 years, took part some projects of US, Canada, Japan.(1996-2001) • I enhanced my knowledge by attending short courses relating to software development and project management that were funded by AOTS, CICC, AITCV, VNU-HCM.
Organization Introduction • University of Information Technology • A member of the Vietnam National University,HCMC • training high quality IT human resources, contributing actively to the development of IT as well as promoting scientific research and technology transfer • include 5 faculties: Software Engineering, Computer Sciences, Information System, Computer Technique and Networking & Telecommunication faculty. • Include elearning center, UITsoft center, network technology center, CITD. • cooperated Keyware Solution Company,Japan.
Introduction Yices • Yices is a high-performance SMT solver. Yices decides the satisfiability of propositional formulas that mix uninterpreted function symbols and equality with interpreted symbols from the following theories: • linear real and integer arithmetic • extensional arrays • fixed-size bit-vectors • recursive datatypes, tuples, and records • lambda expressions • quantifiers
Yices • Yices also does MaxSMT (given an unsatisfiable set of weighted clauses, find the satisfiable subset of maximum weight); dually, it can find the unsat core (the set of unsatisfiable clauses of minimum weight). • Using Yices • Running Yices from the Command Line • Input Language
Running Yices from the Command Line • yices input.ys • To use yices interactively, give the option –i: • yices -i • The option -v num sets the amount of progress messages : yices -v 2 input.ys • Statistics can be obtained using the option -st.: • yices -v 2 -st input.ys • The option -e can be used to force yices to diplay models and unsatisfiable cores: • yices -v 1 -e input.ys
Using Yices • Type Checker: yices -v 1 -tc input.ys • Limit on Recursive Function Expansion: • (define fact::(-> nat nat) (lambda (x::nat) (if (= 0 x) 1 (* x (fact (- x 1)))))) • To prevent infinite loops: yices -nr 40 • DIMACS • Yices can be used also as a regular SAT solver • yices -v 2 -d -e bw_large.c.cnf • Yices also supports the MaxWalkSAT wcnf format. • yices -v 2 -d -ms -e test.wcnf • SMT-LIB format • Yices also supports the SMT-LIB format. • yices -smt < file.smt
Yices Input Language • Declarations • Types • Expressions • Commands Read : http://yices.csl.sri.com/language.shtml more detail
Declaration in yices file • Declarations • Basic types : int, real, nat, bool (define x:: int) • Type definitions : (define-type [name] [type]) • Constant declarations : (define [name]::[type]) • Constant definitions: (define [name]::[type] [expr]) • Example: • ;; This is a comment in yices • (define-type [name]) • (define-type [name] [type]) • (define-type msg-type (scalar ping data ack))
Types in Yices • Types • Basic types : real, int, nat, and bool • Subtypes : (subtype ([id]::[type]) [expr]) • Function types : (-> [domain_1] ... [domain_n] [range]) • Ex: (define f1::(-> int int)) • Tuple types : (tuple [type_1] ... [type_n]) • Ex: (define t1::(tuple int bool int)) • Record types : (record [id_1]::[type_1] ... [id_n]::[type_n]) • (define r1::(record idx::int flag::bool)) • Dependent types • Recursive datatypes • Scalar types : (scalar [name_1] ... [name_n]) • Bit-vector types : (bitvector [size]) • Recursive datatypes : (datatype [constructor_def_1] ... [constructor_def_n])
Expressions in yices file • Expressions • Boolean operators : (and [expr_1] ... [expr_n]) (or [expr_1] ... [expr_n]) (not [expr]) (=> [expr_1] [expr_2]) • Equality and disequality:(= [expr_1] [expr_2]) (/= [expr_1] [expr_2]) • If-then-else : (if [c-expr] [t-expr] [e-epxr]) (ite [c-expr] [t-expr] [e-epxr]) • Let : (let ([binding_1] ... [binding_n]) [expr]) • Quantifiers: (forall ([name_1]::[type_1] ... [name_n]::[type_n]) [expr]) (exists ([name_1]::[type_1] ... [name_n]::[type_n]) [expr]) • Arithmetic ; using <, <=, >, and >= symbols • Functions : (f a_1 ... a_n) • (define f::(-> int (-> int int))) • (update f (pos_1 ... pos_n) new-val) • Lambda expressions: (lambda ([name_1]::[type_1] ... [name_n]::[type_n]) [expr]) • Tuples : (mk-tuple [expr_1] ... [expr_n]) (select t i) • Records : (mk-record [name_1]::[expr_1] ... [name_n]::[expr_n]) • Bit-vectors : (mk-bv [size] [value])
Commands in yices file • Commands • Assert: (assert [expr]) • Extended Assert :(assert+ [expr] [weight]) • Retract : (retract [idx]) • Check • MaxSat • Evidence flag: (set-evidence! true) • Verbosity level • Arithmetic only: (set-arith-only! true) • Recursion limit • Push • Pop • Echo : (echo [string]) • Include : (include [file]) • Reset • Status • Dump context
Reading Chapter 1 • Propositional logic (PL). It covers: • Its syntax. constructs a PL formula. Propositional variables,atoms, literals, logical connectives. • Its semantics. Truth values true and false. Interpretations. Truth-table definition, inductive definition. • Satisfiability and validity. • Equivalence and implication. • Substitution • Normal forms. • Decision procedures for satisfiability. Truth-table method, sat, resolution procedure, dpll. Transformation to equisatisfiable CNF formula.
Chapter 3: First-Order Theories • Table 3.1
Chapter 3 • Table 3.2
Summary Chapter 3 • ⋆Survey of Decidability and Complexity • Table 3.1 summarizes the decidability results for the first-order theories. • Table 3.2 summarizes the complexity results for satisfiability in PL and the decidable first-order theories • Table 3.3 summarizes the complexity results for the quantifier-free fragments. • First-order theories. Formalizations of structures and operations into first-order logic: signatures, axioms. Fragments of theories, in particular quantifier-free fragments. Interpretations, satisfiability, validity.
discussion Hardware & software • Consider hardware & platform: Sony, Dell, or … • software for development environment