13.07.2015 Views

paper pdf - Lab for Automated Reasoning and Analysis - LARA

paper pdf - Lab for Automated Reasoning and Analysis - LARA

paper pdf - Lab for Automated Reasoning and Analysis - LARA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Definition 9 (Base Formula) A base <strong>for</strong>mula with• free term variables x 1 , . . .,x m ;• internal non-parameter term variables u 1 , . . . , u p ;• internal parameter term variables u p+1 , . . . , u p+q ;is a <strong>for</strong>mula of the <strong>for</strong>m:base(u 1 , . . .,u n , x 1 , . . . , x m ) =p∧u i = t i (u 1 , . . . , u n ) ∧i=1∧ distinct(u 1 , . . . , u n )m ∧i=1x i = u jiwhere n = p + q, each t i is a term of the <strong>for</strong>mf(u i1 , . . . , u ik ) <strong>for</strong> some f ∈ Σ, k = ar(f), <strong>and</strong> j :{1, . . ., m} → {1, . . .,n} is a function mapping indicesof free term variables to indices of internal term variables.We require each base <strong>for</strong>mula to satisfy the followingconditions:C1) base does not violate the occur-check [26, 10]:¬(u + baseu) <strong>for</strong> every variable u occurring in base;C2) congruence closure property: there are no two distinctvariables u i <strong>and</strong> u j such that both u i =f(u l1 , . . .,u lk ) <strong>and</strong> u j = f(u l1 , . . .,u lk ) occur asconjuncts in base.The following Lemma 10 is important <strong>for</strong> quantifierelimination in term algebras <strong>and</strong> term powers.Lemma 10 Let β be a base <strong>for</strong>mula of the <strong>for</strong>m∃u 1 , . . .,u p , u p+1 , . . . , u p+q . β 0where u p+1 , . . .,u p+q are parameter variables of β, <strong>and</strong>β 0 is quantifier-free. Let S p+1 , . . . , S p+q be infinite sets ofterms. Then there exists a valuation σ such that β 0 σ =true <strong>and</strong> u i σ ∈ S i <strong>for</strong> p + 1 ≤ i ≤ p + q.The notion of base <strong>for</strong>mula <strong>and</strong> Lemma 10 apply to termsP as well as shapes P S in the structure P E because shapesare also terms over the alphabet Σ s . For brevity we write u ∗<strong>for</strong> an internal shape or term variable, <strong>and</strong> similarly x ∗ <strong>for</strong> afree shape or term variable, t ∗ <strong>for</strong> terms, f ∗ <strong>for</strong> a constructorin the term algebra of terms or shapes, <strong>and</strong> fi ∗ <strong>for</strong> a selectorin the term algebra of terms or shapes.Definition 11 below introduces structural base <strong>for</strong>mulas.The disjunction of structural base <strong>for</strong>mulas can bethought of as a normal <strong>for</strong>m <strong>for</strong> existential <strong>for</strong>mulas interpretedover P E . A structural base <strong>for</strong>mula contains a copyof a base <strong>for</strong>mula <strong>for</strong> shapes (shapeBase), a base <strong>for</strong>mula<strong>for</strong> terms but without term disequalities (termBase), a <strong>for</strong>mulaexpressing mapping of term variables to shape variables(termHom), <strong>and</strong> cardinality constraints on term parameter<strong>and</strong> primitive non-parameter variables of the termbase <strong>for</strong>mula (cardin). A structural base <strong>for</strong>mula containsseveral kinds of variables, classified according to the positionsin which they appear within the structural base <strong>for</strong>mula.Free variables are the free variables of the structuralbase <strong>for</strong>mula; internal variables are the existentially quantifiedvariables. Parameter variables are variables whosetop-level constructor is not specified by the structural base<strong>for</strong>mula, in contrast to non-parameter variables. Primitivenon-parameter term variables denote terms in C, composednon-parameter term variables denote terms in P \ C.Definition 11 (Structural Base Formula)A structural base <strong>for</strong>mula with:• free term variables x 1 , . . . , x m ;• internal composed non-parameter term variablesu 1 , . . .,u r ;• internal primitive non-parameter term variablesu r+1 , . . . , u p ;• internal parameter term variables u p+1 , . . .,u p+q ;• free shape variables x s 1 , . . .,xs m s;• internal non-parameter shape variables u s 1, . . . , u s p s;• internal parameter shape variables u s p s, . . . , us p s +q sis a <strong>for</strong>mula of the <strong>for</strong>m:∃u 1 , . . .,u n , u s 1, . . . , u s n s.shapeBase(u s 1 , . . . , us n s, xs 1 , . . .,xs m s) ∧termBase(u 1 , . . . , u n , x 1 , . . . , x m ) ∧termHom(u 1 , . . .,u n , u s 1 , . . .,us n s) ∧cardin(u r+1 , . . . , u n , u s p s +1 , . . . , us n s)where n = p + q, n s = p s + q s , <strong>and</strong> <strong>for</strong>mulas shapeBase,termBase, termHom, cardin are defined as follows.shapeBase(u s 1 , . . . , us n s, xs 1 , . . . , xs m s) =∧p si=1u s i = t i(u s 1, . . .,u s ms∧ns) ∧ x s i = us j i∧ distinct(u s 1 , . . . , us n )i=1where each t i is a shape term of the <strong>for</strong>m f s (u s i 1, . . . , u s i k)<strong>for</strong> some f ∈ Σ 0 , k = ar(f), <strong>and</strong>j : {1, . . .,m s } → {1, . . ., n s } is a function mappingindices of free shape variables to indices of internal shapevariables.termBase(u 1 , . . . , u n , x 1 , . . . , x m ) =r∧p∧u i = t i (u 1 , . . . , u n ) ∧ Is PRI (u i ) ∧i=1m∧x i = u jii=1i=r+1where each t i is a term of the <strong>for</strong>m f(u i1 , . . . , u ik ) <strong>for</strong>some f ∈ Σ, k = ar(f), <strong>and</strong> j : {1, . . .,m} → {1, . . ., n}6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!