[SCL] functions and functional relations: proposal to change the SCL semantics

Pat Hayes phayes at ihmc.us
Thu Feb 5 00:20:33 CST 2004


I am seeking feedback on an SCL design issue.

In many respects, the changes made to the SCL presentation in the 
most recent drafts have made SCL more conventional that it used to 
be, in the sense that the SCL model theory leans over backwards in 
order to be as similar to a conventional GOFOL model theory as it 
possibly can. This has thrown into sharper light one way in which SCL 
is rather unconventional, however, even though in this respect SCL 
follows KIF: functions are considered to be identical to functional 
relations.

In a conventional GOFOL syntax, function symbols are lexically 
separated from relation symbols and are required to denote functions. 
Even if a relation symbol happened to denote the same extension as a 
function symbol, the question of their identity would not arise, and 
while the equivalence between them could be expressed by an axiom, 
for example
x=f(y) iff Rf(x,y)
(where Rf is the relation 'corresponding' to the function f) , it 
could not possibly be stated so as to be a tautology. In SCL, 
however, the same symbol can be used for f and Rf, and the resulting 
axiom IS a tautology (in the current semantics):
(iff (= x (f y)) (f x y) )   ....... (1)
This must be true in all interpretations, since the use of the symbol 
in a functional position requires that it denote a functional 
relation. In fact the general form
(iff (= x (f @y)) (f x @y) )   .....(2)
is a tautology also.

This mirrors the usage in KIF and is generally considered to be a 
sensible way to proceed, but this equivalence does make SCL 
unconventional in a number of respects, as I outlined in an earlier 
message, and it complicates the translation from SCL into FOL, since 
the relational atoms are translated using holds but the functional 
terms are translated using app, requiring an adequate FOL translation 
to include all axioms of the form
(iff (holds x y z ...) (= y (app x z ...)) )
but only when x  occurs in both a relational and a functional 
position; the resulting sensitivity of the translation to minor 
syntactic changes illustrates the complications which arise. The SCL 
proof theory and the translation into FOL would both be a lot neater 
and more conventional (i.e simpler) if this equivalence between 
functions and functional relations were NOT imposed by the SCL 
semantics.  Is this equivalence worth the meta-theoretic complication 
that it produces? I suggest not, and that we should abandon it.

I can see arguments both ways.  If the thesis is to keep the status quo, then:
Pro:
+1  it is semantically more elegant
+2  it has been found convenient by KIF users
Con:
-1  it makes SCL less conventional as a first-order logic, especially 
in its proof metatheory (eg SCL doesnt obey the deduction theorem)
-2  it complicates the embedding of SCL into FOL (which is 
complicated enough already because of the treatment of =)
-3  if we don't have it as a logical truth, then the equivalence can 
be restored in particular cases by writing an SCL axiom, so we get 
the practical benefit in any case.
-4  The convention that relates function to relations is arbitrary 
(value first or last??) and so should not be made into a logical 
necessity.

Seems to me that -3 cancels +2, and that the remaining cons outweigh 
the pros, so I propose to modify the FOL semantics so as to allow 
functions to be distinct from relations.  (I have not yet made these 
changes to the draft document, but will do so very soon unless anyone 
objects strongly.)

Here's how it goes, in a sketch.  The current story explains SCL as 
arising from a process where two agents both use FOL but disagree 
about the lexical role of some symbols: A wants it to be an 
individual but B wants it to be a relation. The process of 
reconciling this disagreement requires that the mapping from relation 
names to relational extensions be projected into the universe so that 
individuals have associated relational extensions where needed, so 
that A's individuals can play B's relational roles. OK, so extend 
this idea to a disagreement about whether f is a function or a 
relation name: A says function, B says relation. In this case, we can 
just let it play both roles, and project them both into the universe 
as required. If the same entity is required to play both a relational 
and a functional role, then it has two extension mappings which apply 
to it: the relational extension is a set of sequences (tuples) and 
the functional extension is a set of pairs of individuals and 
sequences. They need have nothing particularly to do with one 
another. This satisfies both A and B, but leaves them some room to 
negotiate further on what connection, if any, there might be between 
their interpretations of the symbol.

What this will do in practice is treat a symbol (in fact, any 
expression) used as a function name, and the same symbol used as a 
relation name, as being simply a pun: the same symbol has two 
independent meanings which are selected by the syntactic context of 
use. So there is no *logical* connection between the two f's in the 
following atoms:
(= x (f y))
(f x y)
and they might almost be two different names, in fact; so neither 
atom entails the other. Such punning is of course quite harmless in 
conventional FOL and is treated in the same way (though SCL extends 
this to complex expression which may also denote things in the 
universe.)

It is then up to an SCL axiomatizer to state any connections between 
the functional and relational uses of the same name, if these are 
considered to be desireable; and we might say that such axioms can be 
the result of a process of function/relation negotiation between the 
two hypothetical agents.

The KIF style (value last) can be stated by writing axioms like
(iff (=  (f y z) x) (f y z x) )
for each f (they have to be stated separately) and the current SCL 
convention can be stated succinctly by universally generalizing (2) 
above:
(forall (f x )(iff (= x (f @y))(f x @y))).
which could of course be considered to be part of a 'standard' named header.

The meta-theoretic gains of this change are considerable, and the 
above story seems to provide a reasonable justification for the 
slight extra semantic complication (which is in fact very minimal 
when written out carefully). Finally, the idea that the 
function/relation co-naming should be treated as punning has been 
mooted before by others in the CL group on pragmatic grounds, and 
this change goes along with that option.

Comments? (Howls of protest??)

Pat

PS. Possible objection: this makes SCL differ from KIF. Answer: it 
already differs from KIF in any case by using a different ordering 
convention for function values.


-- 
---------------------------------------------------------------------
IHMC	(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32501			(850)291 0667    cell
phayes at ihmc.us       http://www.ihmc.us/users/phayes




More information about the SCL mailing list