Refinement Operator

From GM-RKB
Jump to navigation Jump to search

A Refinement Operator is a Set-Valued Function that maps a statement to a subset of its refinements.



References

2015

2010

2009

2008

2007a

2007b

2001

1. [math]\displaystyle{ p \vdash q }[/math], i.e. everything provable from [math]\displaystyle{ q }[/math] is provable from [math]\displaystyle{ p }[/math], or equivalently, [math]\displaystyle{ p }[/math] is at least as general as [math]\displaystyle{ q }[/math].
2. [math]\displaystyle{ size(p) \lt size(q) }[/math] under some size metric. In logic programming terms, Shapiro uses the following:
The [math]\displaystyle{ size }[/math] of a sentence [math]\displaystyle{ p }[/math], [math]\displaystyle{ size(p) }[/math], is the number of symbol occurrences in [math]\displaystyle{ p }[/math] (excluding punctuation symbols) minus the number of distinct variables occurring in [math]\displaystyle{ p }[/math].
Intuitively, building a monotonic size increase into the notion of refinement means that all refinements of [math]\displaystyle{ p }[/math] are more specific/weaker than [math]\displaystyle{ p }[/math], as it requires more things to be provable (in the case of adding a body goal) or more structure to be present in the query (if a function symbol is introduced, or two or more variables are unified). This exploits the intimate relationship between the syntax and semantics of logic programs.
A refinement operator [math]\displaystyle{ \rho }[/math] is then defined to be a set-valued function that maps a statement [math]\displaystyle{ p }[/math] to a subset of its refinements, with some technical side-conditions.