1 |
|
accurately_translates(A,B,C,D,E,F) -> exactly_correspond(compile(C,A,D,E,F),C,B,F)
|
#
label(define_exactly_correspond)
#
label(non_clause)
|
[
assumption
]
|
2 |
|
(all A accurately_translates(cT,lsP,sP,A,e1,e2))
|
#
label(cT_compiles_sP)
#
label(non_clause)
|
[
assumption
]
|
3 |
|
accurately_translates(A,lsP,sP,B,C,D) -> accurately_translates(compile(sP,A,B,C,D),lsA,sA,E,D,eArun)
|
#
label(sP_compiles_sA)
#
label(non_clause)
|
[
assumption
]
|
4 |
|
stage2 = cA -> exactly_correspond(cA,sA,lsA,eArun)
|
#
label(source_corresponds_to_executable)
#
label(non_clause)
#
label(goal)
|
[
goal
]
|
5 |
|
-accurately_translates(A,B,C,D,E,F)
|
exactly_correspond(compile(C,A,D,E,F),C,B,F)
|
#
label(define_exactly_correspond)
|
[
clausify 1
]
|
6 |
|
accurately_translates(cT,lsP,sP,A,e1,e2)
|
#
label(cT_compiles_sP)
|
[
clausify 2
]
|
7 |
|
-accurately_translates(A,lsP,sP,B,C,D)
|
accurately_translates(compile(sP,A,B,C,D),lsA,sA,E,D,eArun)
|
#
label(sP_compiles_sA)
|
[
clausify 3
]
|
8 |
|
stage1 = compile(sP,cT,e1effects,e1,e2)
|
#
label(definition_stage1)
|
[
assumption
]
|
9 |
|
compile(sP,cT,e1effects,e1,e2) = stage1
|
|
[
copy 8, flip
]
|
10 |
|
stage2 = compile(sA,stage1,e2effects,e2,eArun)
|
#
label(definition_stage2)
|
[
assumption
]
|
11 |
|
compile(sA,stage1,e2effects,e2,eArun) = stage2
|
|
[
copy 10, flip
]
|
12 |
|
cA = stage2
|
#
label(source_corresponds_to_executable)
|
[
deny 4
]
|
13 |
|
-exactly_correspond(cA,sA,lsA,eArun)
|
#
label(source_corresponds_to_executable)
#
answer(source_corresponds_to_executable)
|
[
deny 4
]
|
14 |
|
-exactly_correspond(stage2,sA,lsA,eArun)
|
|
[
para 12 13
]
|
15 |
|
accurately_translates(compile(sP,cT,A,e1,e2),lsA,sA,B,e2,eArun)
|
|
[
resolve 7 6
]
|
16 |
|
accurately_translates(stage1,lsA,sA,A,e2,eArun)
|
|
[
para 9 15
]
|
17 |
|
exactly_correspond(compile(sA,stage1,A,e2,eArun),sA,lsA,eArun)
|
|
[
resolve 5 16
]
|
18 |
|
exactly_correspond(stage2,sA,lsA,eArun)
|
|
[
para 11 17
]
|
19 |
|
$F
|
#
answer(source_corresponds_to_executable)
|
[
resolve 18 14
]
|