S. Estévez-Martín
等人
/
理论计算机科学电子笔记
188
(
2007
)
37
通过桥接器传播配合约束会导致扩展时间的显著加速。第5节包括结论摘要、有关工
作的简要讨论和对计划的未来工作的一些提示
2
CFLP
编程
在本节中,我们回顾了用于惰性约束函数式逻辑编程的
CFLP
方案
[9
,
2
,
8]
的要
点,该方案作为我们提出的求解器合作的逻辑和语义
2.1
约束域
H
、
FD
和
R
我们假设一个
通用签名
<$=<$
DC
,
FS
<$
,其中
DC
=
符号
和
功能符号
,按字母索引函数进一步分类
对于每个
n
∈
N
,分解为区域相关的
原函数
PF
n
<$
FS
n
和用户
定义函数
DF
n
=
FS
n
\
PF
n
。我们考虑一个特殊的符号,旨在表示一个
未定义的值
,我们假设布尔常数
true
,
false∈DC
0
。我们还考虑
变量
的可数无限集合Var和
本原元素
的集合U(例如
整数的集合Z或实数的集合R
表达 式
e
∈
Exp
的语 法为
e
::
= u
|
X
|
H
|(
e e
1
.
其中
u
∈ U,
X
∈
Var
且
h
∈
DC_
(?
)
e
m
)。下面的表达式分类是有用的:(X e
m
),当X∈V ar且m≥0时,被称
为
可伸缩表达式
,而
u
∈ U和(
h e
m
),当
h
∈
DC
可伸缩
FS
时
,被称为
刚性表达式
。
此外,刚性表达式(h e
m
)称为
活动的
i ∈h∈FS
n
和m
≥
n
,否则为
被动
。表达式的另一个重要子类是模式集
t
∈
Pat
,其语法定义为
t::
=
u|X|(c t
m
)|(
ftm
),其中u ∈ U,X∈Var,c∈
DCn
,m≤n,
f
∈
FSn
,
<mn
.
我们还考虑
替换
作为从变量到模式的映射
σ
,
θ
,并且按照惯例,对于任何
e
∈
Exp
,
我们写
e σ
代替
σ
(
e
),并且
σθ
表示
σ
和
θ
的合成。
约束域
提供了一组特定的本原元素U,以及对它们进行操作的某些本原函数
p
∈
PF
n
给定约束域D上的原子约束可以具有以下形式:n(表示约束平凡地为
真),
◆
(表示约束平凡地为假)或p e
n
→!其中e
n
∈Exp和t∈Pat。
原子基元
约束
的形式为
n
→、
◆
或p t
n
→!其中t
n
,
t∈Pat。本文涉及三个约束域:
•
H,所谓的Herbrand
域
,它支持在空的原始元素集合上的句法相等和非质量约
束。
•
FD,它支持
Z
上的
有限域
约束。
•
R,它支持
R
上
的算术
约束。
表
1
总结了这些域可用的原语函数,以及它们在实践中用于构建原子原语约束的
方式。 我们还假设约束求解器求解器
H
、求解器
FD
和求解器
R
与这些相