amples of polite theories include those modeling data structures such as lists, ...
Key-words: Combination of satisfiability procedures, Decision problems, Many-.
Combining Data Structures with Nonstably Infinite Theories using Many-Sorted Logic Silvio Ranise, Christophe Ringeissen, Calogero Zarba
To cite this version: Silvio Ranise, Christophe Ringeissen, Calogero Zarba. Combining Data Structures with Nonstably Infinite Theories using Many-Sorted Logic. [Research Report] RR-5678, INRIA. 2005, pp.39.
HAL Id: inria-00070335 https://hal.inria.fr/inria-00070335 Submitted on 19 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
Combining Data Structures with Nonstably Infinite Theories using Many-Sorted Logic Silvio Ranise — Christophe Ringeissen — Calogero Zarba
N° 5678 Septembre 2005
ISSN 0249-6399
ISRN INRIA/RR--5678--FR+ENG
Thème SYM
apport de recherche
!#"#$%'&() *+-,/.0 1 $ 2 %!3 !# 45) 6,789!:?A@CB?CDFEG0H3?AIKJ LNM6O3P ?AI QRDTS O JUEV?CHWTJX?CIKIYJXH LM G0@AD0WTJ P D[Z\G PK] G ^`_*aRbdcegf9hi ekj0l-m aRbdcnll-jkbo3prqtsvukw*cnl x!y pXz-cRm6{`|rl l-svl }|X~8~pry-m)8c9y cn _*cRy _*c\
rFi5e0cR~8m cRbo8y ci5~|Xcnl †
‡
§
n8 hpl mNnprb~8w8m cRyN~8y pry |Xbdll-m pry ccRqvcRbdcRkm lpX|`st cR|Xm-w8y c¡stkm pnprgm |Xst*cRy$¢ o|rl cnU*|Xm |l-m-y-w*Rm-w8y cnl`l-w* _£|rlqtsvl m l¤k|Xy-y |j0l¤0l cRm l¤T|X*bVw8qtm-svl cRm l¥!^pV cRy-s¦§jm-_*c6npry-y cnRm$¢ *cnl lpX!m-_*cnl c9~8y pry |Xbdl¤3pr*c¨*cncn8lm pdnprbo8st*c|dm-_*cnpry-j£bdpk8cRqtst8m-_*cV*|Xm |dl m-y-w*Rm-w8y c ©Rq®st|rm-l _ªl-sv9|¯m-_*cRcnqvl prpry-Tj[¢±°bd~8pk~38cRcRFqtst8bd£cRm-m-_*_*cp0FcRqvprcRbd8qtcRj²ks¦m l¥opr^`m-_F_8svl9m-_*ncnprprbVy-svo8cnl6st|X|Xy m-c9svprl-«m |Xo8|Xqt¬j=sto3Tc³*8|r stm _8csv¥cR cnw*l-st8=m-_*c ^`_*cp|Xq´pXNm-_8svlµy cR~pry-m¶svlµm py cRq®|·Um-_*c¸l-m |Xo8qvcstT³*8stm cR*cnl l`y cnugw8sty cRbdcRkm¥¡^Np|r _8svcR c m-_8svl¸p|Xq¹¤ © cstkm-y pkTw*ncm-_*c*prm-svprpXµ~3prqtstm cm-_*cnpry-svcnlº¤|X* © cl _*p © m-_|Xm9|Xm-w8y |XqcK·0¢ |Xb~8qvcnlµpX~3prqtstm cm-_*cnpry-svcnlst*Rqtw*8cm-_*pl c)bdp08cRqtst8*|Xm |Vl-m-y-w*Rm-w8y cnl¶l w* _|rlqtsvl-m l¤k|Xy-y |j0lº¤ l cRm l¤¶|X*»bw8qtm-svl cRm l¥½¼8w8y-m-_*cRbdpry c¤ c£~8y p 0sv8c¾|[bdcRm-_*p0»m-_|Xmdsvld|Xo8qvc£m p¬nprbVo8st*c[| ~prqtstm c=m-_*cnpry-j © stm-_¿|Xgj«m-_*cnpry-j«pX¸m-© _*c£cRqvcRbdcRgm lº¤y cRg|Xy Tqvcnl lpX © _*cRm-_*cRydm-_*c=q®|Xm-m cRyUsvl l m |Xo8qtjstT³*8stm c¨pry*prm¥ ^`_*c)y cnl-w8qtm l`pX´m-_8svly cR~pry-mµcR*cRy |XqtstÀcm pbU|Xgjk¢Ál pry-m cnqvprsvm-_*pl cy cnncRgm-qtjUpro8m |Xst*cn okj9^`st*cRqtqtsT|X*Â|Xy-o|)ÃpryNnprbVo8st8st86m-_*cl pX¢Á|Xqtqvcnl-_8stgj9m-_*cnpry-svcnl © stm-_V*pr*l m |Xo8qtj9stT³*8stm c m-_*cnpry-svcnlstFpr*cK¢Ál pry-m cnFqvprsv¥ ÄFÅÆÇ ÈÉ Ê {µprbo8st|Xm-svpr[pX¡l |Xm-svl$³|Xo8stqtstmËj£~8y pkncnTw8y cnlº¤Ì¸cnRsvl-svpr¾~8y pro8qvcRbdlº¤hÍ|Xgjk¢ l pry-m cn=qvprsv¤Îw8m prbU|Xm cnF8cnTw*Rm-svpr ÏÐÑÓÒ`Ô3ÕYÖ¹×ÑØÒÙrÚ ÖÃÛ¹ÜÞÝdÒÃßXÙXÙÕ ÖÃÛ¹à-ádâÝãYÖÁÚYänÛ¹Òå\æçèAÏé¿ê´ê3éNëCìºíYí-îYïºíKíYðå!æºç¬ê´ê3éNëCìYìKñKòíKí±óðNÚYäXá ÙÖ¹Õ ô§à$õ±Û¹ÒöNê3è´÷\øê´ê´ù!ù¶ðÚ ärá¸ú!æºûü8öûkýöNëAþÿ ∗
† ‡ §
! " $# % '& )( +* -,+. / 01 3245 672
äÑ Kà±Ö¹ÒÃÑÞÛAÝ)Õ *åà±Ô 6à ºÑØõ$Õÿ3ø )ÚYÑØÜ
Unité de recherche INRIA Lorraine LORIA, Technopôle de Nancy-Brabois, Campus scientifique, 615, rue du Jardin Botanique, BP 101, 54602 Villers-Lès-Nancy (France) Téléphone : +33 3 83 59 30 00 — Télécopie : +33 3 83 27 83 19
) ) S
T
κ > |Aτ |
B
Γ
|Bτ | = κ ,
|Bσ | = |Aσ | ,
24$5
T
! !. $ # $ 6! 6.
σ ∈ S \ {τ } .
S*
9Ëml-5w GUncnlm pd*prm cVm-_|Xm6cR cRy-jFukw|Xgm-s¦³cRy$¢Ã§y cnc ¢Ã§pry-bw8q®|dsvl ¢Ácnukw8st r|XqvcRkmm p²| T ̸¯65:¼ :Γ ∨ · · · ∨ Γ l-w* _Fm-_|Xm|Xqtq´m-_*c Γ ocRqvpr8dm p L ¥ Σ É ¡É C É Σ !"C ' 6 ) S = {σ , . . . , σ } ⊆ Σ E !. !' ! 1
%
n
i
)(
) E> $6'* ) ! J) > $5 !. ) 1) ' " n7' ! ! ) 16') ! * Σ L Γ Σ !5$ $5T '>6 $ !' vars σ (Γ) 6= ∅ σ ∈ S* !E! $5L $5 ' ! ! ' 5() $ ' F* ' " 7' w Γ /6 !> 5 0 - !"$ $
" )H L Σ ψ = w(Γ) ' ' @)C # $5 Γ
!
(∃¯ v )ψ
S
v¯ = vars(ψ) \ vars(Γ)
T
! ! - () $5 $5 ' ! ! 01 7' T '>6 $ σ ∈ S*
! - 1) *# "!"!()C# $3 "!
ψ T Aσ = [vars σ (ψ)]A
24$5
T
! ! *'
ψ
!"$ $
S*
|Xkmm p 8cK³**c | © stm-*cnl l¾§w8*Rm-svpr witness pr |Xqtqukw|Xgm-s¦³cRy$¢Ã§y cnc Σ¢ © Ãpry-bVw8q®|rc¨ogj=w*l-st8|rl|o8q®|rED=o3p·²m-_*c¸§w8*Rm-svpr w 8cK³**cnFpr L ¥ ^Npd8pdl p8¤TqvcRm ϕ oc¨|ukw|Xgm-s¦³cRy$¢Ã§y cnc Σ¢ÃÃpry-bVw8q®|T¤3|X*£~3cRy$Ãpry-b m-_*c¸Ãprqtqvp © st8K nprg cRy-m ϕ stkm pF| T ¢Ácnugw8st |XqvcRgm9̸¯¼ Γ ∨ · · · ∨ Γ l-w* _Ím-_|Xm vars (Γ) 6= ∅ ¤3§pry c|r _ σ ∈ S qvcRm witness(ϕ) = w(Γ ) ∨ · · · ∨ w(Γ ) ¥ 5::
Ic
A
1
1
éé äMNYïOYò
n
n
σ
B
' !
( !"! F* σ ∈ ΣS ∩ ΣS σ σ 1 2 A A ' ' )+* B B > F*
x =y
F
x =y
F
x, y ∈ vars(Φ1 ) ∩ vars(Φ2 ) *
É ¡É C É & )( Ti Σi $56'* !"$ $ ΣF1 ∩ ΣF2 = ∅ ' ΣP1 ∩ ΣP2 = ∅ !E!> $ ! ')+ 1# $ "! 6L ) ! /)C ' S S Γ1 ∪ Γ 2 E i = 1," 2 * 7' )+ 1 ') T!2 !. '61 ' ' )C S = Σ1 ∩ Σ2 * ') ) * * ψ = witness (Γ ) 2 T 2 2 S ) '6($ L ) 24$5 $5 ') )H'# '6 σ∈S V = σ∈S Vσ * V @σ') = 0vars
σ (ψ2 ) * Γ ∪ Γ ! (T ⊕ T ) ! ! - () 1 2 1 2 24$5 ' ! !> ' ) * @') " )H ' ! %
*
!"$3 $
E
E = {Eσ ⊆ Vσ × Vσ | σ ∈ S} , Γ1 ∪ arr (V, E)
!
T1
! ! - () '
{ψ2 } ∪ arr (V, E)
!
T2
! ! - ()
*
K¥Î6l l-w8bdcm-_|Xm svl ¢Ál |Xm-svl$³|Xo8qvc¥ cRm F¥ ekst*nc |X* |Xy c ¢Ácnugw8st |XqvcRgm¤\stmV§prqtqvp © lVm-_|Xm Γ v¯∪={ψvars(ψ svl|Xqv)l \p } ¢Ál |Xm-svl$³|Xo8qvc¥^`_gw*lº¤ © c¡|X¨³8·V| ¢¹stkm cRy-~8y cRm |Xm-svpr A l |Xm-svl$§j0st8 Γ ∪{ψ } ¥ _© *cRy c ¯6cK·Tm¤TqvcRm |X* x = y } , Ãpry σ ∈ S . E = {(x, y) | x, y ∈ V ¶j¨npr*l m-y-w*Rm-svpr¤ c¶_|n cµm-_|Xm svl ¢ÁlY|Xm-svl$³|Xo8qvcµ|X* {ψ }∪arr (V, E) Γ ∪arr (V, E) T svl ¢Ál |Xm-svl$³|Xo8qvc¥ ©
5 :: 1 ⇒ 2 Γ1 ∪ Γ2 (T1 ⊕ T2 ) vars(Γ2 ) Γ2 (∃¯ v )ψ2 T2 (T1 ⊕T2 ) (T1 ⊕T2 ) E = {Eσ | σ ∈ S} σ
A
σ
2
1
2
1
2
A
1
1
2
T2
2 ⇒ 1K¥ cRm A ocF| T ¢¹stgm cRy-~8y cRm |Xm-svpr l |Xm-svl$§jkst8 Γ ∪ arr (V, E) ¤`|X*½qvcRm B ocF| ¢¹stgm cRy-~8y cRm |Xm-svpr£l |Xm-svl$§j0st8 } ∪ arr (V, E) ¥¶ekst*nc T svl\³*8stm cRqtj © stm-*cnl l |Xo8qvc¤ © c|X T |rl l-w8bdc © stm-_*prw8mqvpl lpX\cR*cR{ψ y |XqtstmÁj£m-_|Xm B = V ¤TÃpry)c|r _ σ ∈ S ¥ 1
2
1
2
σ
éé äMNYïOYò
B σ
2
B
^`_gw*l¤TÃpry)c|r _
σ∈S
' !
( !"! $
$5 ' 0 - 6 ! ! - )+*
S
S i6=j (Σi
∩ ΣSj ) =
T
S i Σi
i
*
i
)C
Ti
! 6 ()
'
1 ≤ i ≤ n
' P P ' Σ i ∩ Σj = ∅ 1 ≤ i < j ≤ n ! ' + ) 1 > # 3 $ " ! 6 ' T S 2 ≤ i ≤ n* i 24$ $ 5' - ! ! - ( ) * 6() ! 6 ()C T ⊕ · · · ⊕ Tn * ! ' ' 6 F 4 $ ' 0 - 6E ! ! - ( )+ * 6(1) Ti NP 1≤i≤n !E' )C ')+*F ' ')J $5 $ ' 0 - witness ! ! - (T i) * 6() ! E' 2 )C≤ 1 i ≤ n NP T1 ⊕ · · · ⊕ T n * £ c X | |X~8~8qtj«prw8ynprbo8st|Xm-svpr I c=~8y p0ncncn«ogjªst*Tw*Rm-svpr¿pr ¥ Á9 n n = 2 © 5:: bdcRm-_*p0 m p T1 |X* T2 ¤!|X* m-_*cRq®|Xstb§prqtqvp © logjª^`_*cnpry cRb B T¥ Á9 )st*l-m c|r n > 2 ¤\stm l w5UG ncnlm pÍ|X~8~8qtjªprw8ynprbVo8st|Xm-svpr bdcRm-_*p0ª³*y l-mm p T1 |X* T2 ¤¡|X*«l-w8o*l cnukw*cRgm-qtj m p ¤ ¤´¥n¥n¥n¤ Tn ¥ T1 ⊕ T 2 T3 ΣF ∩ Σ F = ∅ i j
¸ % 6,/%!3 ! ek_8stkjUm-_*cnpry-svcnl cRy cstkm-y pkTw*ncn=okj^`st*cRqtqts|X*FÂ|Xy-o| =CB@?st=pry 8cRy`m pcK·0m cR*m-_*c¸pr*cK¢ l pry-m cnU cRy l-svpr£pX© Nm-_*c¸¯6cRqvl prT¢±°~8~cR²bdcRm-_*p0²m pVm-_*c¸nprbo8st|Xm-svpr¾pXN*pr*l-m |Xo8qtjstT³*8stm c m-_*cnpry-svcnlº¥\ek_8stkj¨m-_*cnpry-svcnl|Xy cstgm cRy cnl-m-st8¸ocn|Xw*l ccR cRy-j¨l _8stgj9m-_*cnpry-j S |Xo3c¶nprbVo8st*cn © stm-_[^`_*|Xgc¸j=*prprm-m-_*svprcRFy)pXm-_*cnl-pr_8y-stj8st*Tcn¤8l cRl cRF|rl)s¦pry-m-st_*c¨stq®|X|Xqtm-qtm jcRy)stksvm-ly pk*Tprmw*nl-cnm F|Xo8stqt=j²prstT*³*cK¢Á8l stprm y-cm ¥ cn£qvprsv¤*|X*²st£m-_8svl l cnRm-svpr © ccR*cRy |XqtstÀc6stmµm p¨bU© |Xgjk¢Ál pry-m cn²qvprsv¥ Ic6|Xqvl pV~8y pº c6m-_|Xm¤gw8*8cRy`y |Xm-_*cRy © cF| D |rl l-w8b~8m-svpr*l¤rl-_8st8st*cnl lNsvlcnukw8st r|XqvcRkmm p~3prqtstm cR*cnl lNstVpr*cK¢Ál pry-m cnVqvprsv¥\^`_*ccnukw8st |XqvcR*nc svl)qvcnl lRqvc|Xy)stFbU|Xkjg¢Ál pry-m cn¾qvprsv¥ -£Å C É cRm T oc| Σ¢¹m-_*cnpry-j¤¸qvcRm S ⊆ Σ ¤¸|X* qvcRm ϕ oc| T ¢Ál |Xm-svl$³|Xo8qvc ukw|Xgm-s¦³cRy$¢Ã§y cnc ¢ÃÃpry-bVw8q®|T¥ Ic8cR*prm c © stm-_ mincard (ϕ) m-_*cbst8stbw8bpX`m-_*c§prq¦¢ qvp © st8l cRm)pX!|XΣy Tst|Xqkw8bVocRy .l K S
T,S
éé äMNYïOYò
max |Aσ | σ∈S
| A |=T ϕ
.
B
²Å ª8
' !
( !"! k . a , ¶w8mm-_*cR¤ © cV|XF8cK³**c| © stm-*cnl l`§w8*Rm-svpr£Ãpry ogj=qvcRm-m-st8 witness(ϕ) = ψ ¥ T ^`_*c`§prqtqvp © st8V~8y pr~pl-stm-svprcnl m |Xo8qtsvl-_*cnl¡l-5w GURsvcRkm¶npr*Tstm-svpr*l¶w8*8cRy © _8sv _~3prqtstm cR*cnl l stb~8qtsvcnll-_8st8st*cnl l¥ σ∈S i=1
σ B i
σ i σ 1
σ σ
èAåéNè§ö
Bº
"!# $%&' !()+*," .-/ 0 1324$56'7!
É ¡É C É %
Σ
$56'*
!H ' C) !"!" $ Σ
)(
*
S ⊆ ΣS
!. !' ! ' )
T
ΣS = S Σ
!-/ 1
' 6($ 01 6 !"$ $ S ! - 1 ! 6 () $6 # 5$ $5 Σ ! 01 A 7' '& σ∈S Aσ A T T ! ')+ 1# $ "! 6 S * 24$ ! !"$( 0* # $ 6! 6.
S*
T
µj|rl l-w8b~8m-svpr¤ svl!l bdpkprm-_ © stm-_y cnl ~3cnRm!m p S ¥Îqvl p8¤ T _|rl!m-_*cµ³*8stm c)bdpk8cRq ~8y 5pr:~:cRy-mÁj © stm-_Fy cnl ~3cnRmm p ST ¥ ¯cK·Tm¤ c9Rq®|Xstb m-_|Xmm-_*c6§w8*Rm-svpr |X=oc6c´cnRm-st cRqtj=nprb~8w8m cn£ogjm-_*c ~8y p0ncnTw8y c© /1 85 st¬¼stw8y cdT¥V^Np=mincard l cncm-_8svl¤ © c*cncnÍm p=l-_*p © m-_|Xm¸m-_*c~8y p0ncnTw8y c svlm cRy-bst|Xm-st8²|X*£~|Xy-m-s®|Xqtqtj£npry-y cnRm¥ /21 8;5
{µpr*ncRy-8st8[m cRy-bst|Xm-svpr¤´z±w*l-m*prm cUm-_|Xml-st*nc Σ = S ¤stm¨Ãprqtqvp © lm-_|Xm¤§pryc|r _ ¤*m-_*c9kw8bVocRy6pX!stkm cRy-~8y cRm |Xm-svpr*l6cRkw8bdcRy |Xm cn bdpkTw8qvpUsvl prbdpry-~8_8svl-b `st¾qtst*c dsvl k>0 ³*8stm c¥ {µpr*ncRy-8st8 ~|Xy-m-s®|Xq¸npry-y cnRm-*cnl l¤)|rl l w8bdcFm-_|XmUm-_*c~8y p0ncnTw8y c cK·0stm l=|Xm qtst*c)
T¥\^`_*cRdm-_*cRy ccK·0svl-m l¡|Xstkm cRcRy k l-w* _dm-_|Xm ϕ = true ¤rÃpry¡l prbdc /T1 ¢¹stk8m 5 cR y-~8y cRm |Xm-svpr l-w* _¾m-_|Xm |A | ≤ k ¤0Ãpry|Xqtq σ ∈ S ¥¡h[pry cnp cRy¤*§pry|Xqtq T ¢¹stkm cRy-~8y cRm |Xm-svpr*l B l-w* _Fm-_|Xm A ¤0§pry|Xqtq ¤ c9_| c ¥^`_*cRy cK§pry c¤ mincard (ϕ) = k ¥ |B | ≤ k − 1 ¯cK·Tm¤8|rl l-w8bdc6m-_|Xσm`m-∈_*Sc~8y © p0ncnTw8y cϕ /=1 false cK·Tstm l`|Xm`qtst*cV0¥9ËmÃprqtqvp © l`m-_|Xm`Ãpry|Xqtq 85
¢¹stkm cRy-~8y cRm |Xm-svpr*l B l-w* _Fm-_|Xm |B | ≤ n − 1 ¤TÃpry|Xqtq σ ∈ S ¤ © c9_| c ϕ = false ¥^`_8svl T stb~8qtsvcnlm-_|Xm mincard ¥!h[pry cnp cRy¤l-st*nc (ϕ) ≥ n |X* σ ∈ S} , n = max {j | j = |vars (witness(ϕ))| stm)§prqtqvp lm-_|Xm)m-_*cRy ccK·0svl m l| ¢¹stkm cRy-~8y cRm |Xm-svpr l-w* _¾m-_|Xm ϕ = true |X* |A | ≤ n ¤ Ãpry|Xqtq ©σ ∈ S ¥!^`_8svlstb~8qtsvcnlm-_T|Xm mincard (ϕ)A≤ n ¥ ekst*nc mincard (ϕ) ≥ n |X* mincard (ϕ) ≤ n ¤ © cpro8m |Xst mincard (ϕ) = n ¥ T,S
S
A
σ
B
σ
T,S
B
σ
T,S
σ
A
σ
T,S
T,S
T,S
T,S
I¿_*cR ¤¡x!y pr~pl-stm-svpr 5 B²m cRqtqvlw*lm-_|Xmst»m-_*c=pr*cK¢Ál pry-m cn»|rl c²~3prqtstm cR*cnl l X| * l-_8st8st* cnΣl lF |Xy =c1m-_*cÍl |Xbdc[npr*ncR~8mÃpry£|Xqtq6~8y |rRm-sv|Xq¸~8w8y-~pl cnl¥ I _*cR Σ > 1 ¤ m-_*c_kjk~prm-_*cnl-svl Σ = S bU|nj[ocm p0p£l-m-y pr8*¥{µpr*l cnukw*cRgm-qtj¤m-_*ccnugw8st |XqvcR*nco3cRm © cncR ~prqtstm cR*cnl l|X*¾l-_8st8st*cnl lsvlqvcnl l)Rqvc|Xy)st£m-_*c9bU|Xkjg¢Ál pry-m cn|rl c¥ S
S
S
éé äMNYïOYò
B
N Î N N
¢Ál |Xm-svl-³|Xo8qvc¨ugw|Xkm-s¦³cRy$¢ÃAy cnc Σ¢ÃÃpry-bVw8q®|
;
T mincard T,S (ϕ)
' !
( !"! 6 $ ')4 %
B Γ κ > |Aindex | *
|Belem | = |Aelem |
|Bindex | = κ
èAåéNè§ö
"!# $%&' !()+*," .-/ 0 1324$56'7!
Rc m V = vars stkm cRy-~8y cRm |Xm-svpr B pº cRy V ¤*|X*£qvcRm A|=κ 5::
¤¶Ãpry
¥ IcFnpr*l-m-y-w*Rm l| T ¢ |rl¡Ãprqtqvp © l¥!¼s¦·|Vl cRm A l-w* _Um-_|Xm |A ∪
σ ∈ {elem, index, array} elem ∪ Vindex ∪ Varray
σ
σ (Γ)
array
0
index
0
Bindex = Aindex ∪ A0 , Belem = Aelem ,
|X*
Ãpry)c|r _ index¢¹ r|Xy-s®|Xo8qvc i ∈ V , Ãpry)c|r _ elem¢¹ |Xy-s®|Xo8qvc e ∈ V . e =e , 9Ëpry 8cRyVm p¾8cK³**c pº cRyVm-_*c ¢¹ |Xy-s®|Xo8qvcnl¤N³8·ª|XªcRqvcRbdcRgm e ∈ A ¥^`_*cR¤Ãpry B array c|r _ array¢¹ |Xy-s®|Xo8qvc a ∈ V ¤ © c9qvcRm ( s¦ i ∈ A , a (i) , a (i) = prm-_*cRy © svl c . e , ¶j npr*l-m-y-w*Rm-svpr¤ svl[| T ¢¹stgm cRy-~8y cRm |Xm-svpr l-w* _ m-_|Xm |B | = |A | |X* B ¡ ¥ 6 ¯ K c 0 · m ¤ ¨ c l * _ © p © m-_|Xm B lY|Xm-svl$³cnl|Xqtq´qtstm cRy |Xqvlst Γ ¥ |B |=κ C Å X !C É Å ÁÉ e ≈ e e 6≈ e i ≈ j Ê i 6≈ j 9ÁbbdcnTs¦¢ |Xm c¥ C Å X !C É Å ËÉ a ≈ b cRm i ∈ B ¥ 9¹ i ∈ A m-_*cR a (i) = a (i) = ¥ 9Á i ∈/ A m-_*cR a (i) = e = a (i) ¥^`_gw*lº¤ a = b ¥ / b (i) = b (i) C Å X !C É Å ÁÉ a 6≈ b ekst*nc a 6= b ¤m-_*cRy ccK·Tsvl-m l9|XÍst*8cK· i ∈ A l w* _Fm-_|Xm a (i) 6= b (i) ¥ 9Ám`Ãprqtqvp © lm-_|Xm a (i) 6= b (i) ¤ © _8sv _Fstb~8qtsvcnl a 6= b ¥ C Å X !C É Å ËÉ e ≈ read(a, i) Ic¸_|n c K iB = i A , B
index
A
elem
0
elem
array
A
B
index
0
array
elem
elem
index
1
elem
2
1
array
A
B
B
index
0
A
B
index
index B
A
array
A
2
elem
index
index B
B
A
index
B
B
eB = e A = [read(a, i)]A = a A iA = a B iB
éé äMNYïOYò
A
B
l st*nc
iA ∈ Aindex .
B
' !
( !"! 1 6 ' Tarray >6 $
µj=x!y pr~3pl stm-svpr*lBB¤0¤*|X*¾T¥
A
array
ekstbstq®|Xym pm-_*c9~8y pkpX!pX!x!y pr~3pl stm-svpr0¥ 5:: É ¡É C É É´É Å ' * '
A
B
B
0
Aelem * |Bindex | = |Aindex |
Γ
A
index
B
index
) 16') ! !5$ $ Σarray ! ! *' ! 5$ $
B
κ > |Aelem | *
* ! !' !
S ⊆ {elem, index}
S*
' '
' ( #+ +
8cK³*C*NcnÅ |r l6 Ãpr qtqvp lºÉ ¥I stm-Î_*prw8© 9m stm-qv*pcnl l l9lpX§¶w8*cRR*m-svcRpry |XqtstmËj¤qvcRm o cÃ|prynprm-_*rz$c²w8m-*_*Rcnm-prsvpry-ªj pX |Xm |X»oc ¢ qtstm cRy |Xqvl`l-w* _m-_|X© m |X* ¥ IcqvcRm oc)m-_*c y cnl w8qtm)pX!|X~8~8qtj0st8Um p m-_*c9§prqtqvp st8dm-y |X*l$Ãpry-bU|Xm-svpr K
Tarray
witness array Γ vars elem (Γ) 6= ∅
Σarray
© st Γ © stm-_ | qtstm cRy |Xq¨pXm-_*c[Ãpry-b }cR~8q®|rnc¬c|r _ qtstm cRy |Xq¨pXm-_*c§pry-b a 6≈ b ¤ * _ R c
y c v s l | §
y n c l _ ¢¹ r|Xy-s®|Xo8qvc¥ read(a, i ) 6≈ read(b, i ) © i index ²Å ª8 cRm Γ o3c|²nprrz±w8*Rm-svprpX |Xm Σ ¢¹qtstm cRy |Xqvl¤´qvcRm ∆ = witness (Γ) ¤ |X*FqvcRm v¯ = vars(∆) \ vars(Γ) ¥!^`_*cR Γ |X* (∃¯v)∆ |Xy c T ¢Ácnukw8st r|XqvcRkm¥ É ¡É C É Γ E E' .' ! Σ ) 16') !/!"$ $ vars (Γ) 6= vars index (Γ) 6= ∅ Γ
witness array (Γ)
array
0
0
0
&
array
array
array
%
)(
'&
' L ' 0 ' * ) array 16')/ $5 ' ∅ vars elem (Γ) 6= ∅ $ ') )H# 3' @)C
! ! ! - ()
*
*
Γ
Tarray
*
42 $5 ' ! ! '
01 7'
Tarray = [vars elem (Γ)]A *
Aelem
A
! ! *'
Γ
!"$ $
index
x 6≈array y *
24$5
Aindex = [vars index (Γ)]A
2 ⇒ 1K¥/9ËbbdcnTs®|Xm c¥ 1 ⇒ 2K¥ cRm V = vars (Γ) ¤0Ãpry σ ∈ {elem, index, array} ¥ekst*nc Γ svl T ¢Ál |Xm-svl-³|Xo8qvc¤ m-_*cRy ccK·0svl-m l¡| T ¢¹stgm cRy-~8y cRm |Xm-svpr B lY|Xm-svl$Aj0st8 Γ ¥JIc © stqtq*w*l c B stUpry 8cRy!m p¨npr*l-m-y-w*Rm |XFpr~8~pry-m-w8*c T ¢¹stgm cRy-~8y cRm |Xm-svpr A ¥ 5::
σ
σ
array
array
array
èAåéNè§ö
"!# $%&' !()+*," .-/ 0 1324$56'7!
h pry c¨l ~3cnRs¦³|Xqtqtj¤ © c9qvcRm A o3c¸m-_*c npr*l m-y-w*Rm cn¾|rl`Ãprqtqvp © l¥¡¼sty l-m¤ © c9qvcRm
Tarray
¢¹stkm cRy-~8y cRm |Xm-svpr[pº cRy
Velem ∪ Vindex ∪ Varray
B Aindex = Vindex , B Aelem = Velem ,
|X*
Ãpry)c|r _ index¢¹ r|Xy-s®|Xo8qvc i ∈ V , Ãpry)c|r _ elem¢¹ |Xy-s®|Xo8qvc e ∈ V . e =e , 9Ë¿pry 8cRy²m pª8cK³**c p cRy²m-_*c array¢¹ |Xy-s®|Xo8qvcnl¤`³8·¿|X e ∈ A ¥ `^ _*cR¤`Ãpryc|r _ A |X* i ∈ V ¤ © c9qvcRm a∈V ( s¦ a (i ) ∈ A , a (i ) , a i = prm-_*cRy © svl c . e , ¯prm cm-_|Xm svl| cRqtq¦¢Á8cK³**cn ¢¹stgm cRy-~8y cRm |Xm-svpr¤¡|X*Ím-_|Xm ¤ Ãpry σ ∈ {index,Aelem} ¥© ¯cK·Tm¤ © c¨l _*p T© m-_|Xm A l |Xm-svl$³cnl|XqtqNqtstm cRy |Xqvl)st AΓ ¥ = [vars (Γ)] C Å X !C É Å ÁÉ e ≈ e e 6≈ e i ≈ j Ê i 6≈ j 9ÁbbdcnTs¦¢ |Xm c¥ C Å X !C É Å ÁÉ a ≈ b cRm i ∈ A ¥ 9Á a i ∈ A m-_*cR a i = ¥ 9¹\st*l-m c|r a i ∈/ A m-_*cR a (i ) = e = b (i ) ¥ a i =b i =b i C Å X !C É Å ËÉ e ≈ read(a, i) Ic¸_|n c K iA = i B , A
index
B
elem
0
array
elem
index
A
B
A
B
B
B
elem
0
σ
array
1
elem
2
1
elem
array
B
B
B
B
A
A
B
2
index
index B
B
A
σ
index
B
A
elem
elem A
A
0
A
A
A
eA = e B = [read(a, i)]B = a B iB = a A iA
-l st*nc a i ∈ A . C Å X!C É Å ÁÉ ekst*nc a i = e ∈ A ¤ © cd_|n c © c i, e) _| c a i = b i a== ewrite(b, ¥ 6 ¯ K c 0 · m¤µqvcRm j ∈ A l w* _m-_|Xm j 6= i ¥ 9¹ = e m-_*cR a (j) = a (j) = b (j) = b (j) ¥ 9Á¶st*l-m c|r a (j) ∈/ A m-_*cR a (j) ∈ A ¥ a (j) = e = b (j) A
B
A
éé äMNYïOYò
B
A
A
elem
0
B
A
B
B
B
A
B
B
elem
B
B
elem
A
index
B
A
B
elem
É ¡É C É
%
ÅkÉ Å
$6'*
( !"! |Aelem | *
¤Ãpry ¥ Icnpr*l-m-y-w*Rm¸| ¢¹stgm cRy-~8y cRm |Xm-svpr |rl`§prqtqvp © l¥¡¼s¦·Fσ |∈l {elem, cRm A l-set} w* _Fm-_|Xm |A ∪ A | =T κ ¤*|X*£qvcRm
Vσ = vars σ (Γ) 5:: B Velem ∪ Vset
set
0
0
elem
Belem = Aelem ∪ A0 ,
|X*
§pry)c|r _ elem¢¹ r|Xy-s®|Xo8qvc e ∈ V , §pry)c|r _ set¢¹ |Xy-s®|Xo8qvc x ∈ V . x =x , ¶jFnpr*l m-y-w*Rm-svpr svl| ¢¹stkm cRy-~8y cRm |Xm-svprl-w* _m-_|Xm |B | = κ ¥)h[pry cnp cRy¤3stmsvl m-y-st 0s®|Xqm p _*cn D£m-_|Xm BB lY|Xm-svl$T³cnl|Xqtqqtstm cRy |Xqvlst Γ ¥ É ¡É C É É´É Å 24$5 $56"* T ! !". $ # $ "! 6 $5 !' eB = e A , B
elem
A
set
set
%
'& '
elem
set
elem * 5::
µj=x!y pr~3pl stm-svpr*lBBV|X* gT¥
'* ' #
' ( #+ +
' '
|rlÃCprNqtqvpÅ l¥ I stm- *_ prÉ w8m`qvpl Îl¶pX© stm-*cR*cncRl ly |X§qtw8stmÁ*jR¤Tm-svqvprcRm o c|nprrz$§w8pry´*Rm-_*m-svc!pr=m-_*pXcnpry- j |Xm |X¹¢ qt¨stm o3cRy c|X8qvl`cK³*l-*w*cn _ m-_|Xm © -/ 1)+* # !E!)C
eA ∈ Aelem
{elem} *
µj=x!y pr~3pl stm-svpr B T¤*}cRbU|Xy6D k0¤|X*Fx¡y pr~3pl-stm-svpr gT¥
*' # #+ +
ÅkÉ Å 6É ! C Å Å 24$5 $56'* T ! ) 1# $ 6! 6. {elem} µj=x!y pr~3pl stm-svpr*l g
d|X* gT¥ 5:: 45+$ 8 hw8qtm-svl cRm l±i |Xqvl p Dk*p © |rl!o|Xl±i |Xy cnprqtqvcnRm-svpr*l¶m-_|Xm!bU|njnprgm |Xst²Tw8~8qtsv|Xm c)cRqvcRbdcRgm l¥ ¼pry-bU|Xqtqtj¤|bVw8qtm-svl cRm x svl|§w8*Rm-svpr x : A → N ¤0Ãpry)l prbdc¨l cRm A ¥ ¤ c y-stm c Icw*l c`m-_*c)l-j0bVoprq m p¨8cR*prm cm-_*c)cRb~8mËjbVw8qtm-svl cRm¥ I _*cR m p8cR*prm cm-_*cbVw8qtm-svl cRm`n[[pr]]gm |Xst8st8cK·*|rRm-qtj n pknRw8y-y cR*ncnlµpX e |X*nd*≥prm-0_8st© 8©cRqvl cJ¥ I¿[[e]]_*cR ¤ c9qvcRm ¥ n