170 likes | 278 Views
PRESENTATION. UNIVERSITY OF INFORMATION TECHNOLOGY SOFTWARE 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.
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