«ü©w¨ç¼Æ (AssignmentFn)
If F is a function with a value for the
objects denoted by N1,..., NK, then the term (AssignmentFn F N1 ... NK)
denotes the value of applying F to the objects denoted by N1,..., NK.
Otherwise, the value is undefined.
Ontology
SUMO / STRUCTURAL-ONTOLOGYClass(es)
Coordinate term(s)
³Ì¤j¤½¬ù¼Æ¨ç¼Æ
³Ì¤p¤½¿¼Æ¨ç¼Æ
§Ç¦C¨ç¼Æ
¥Ù¬ÞÄÝ©Ê
µL¥æ¶°¤À¸Ñ
µL¥æ¶°Ãö«Y
½aºÉªºÄÝ©Ê
½aºÉªº¤À¸Ñ
¦¨¥ß
¤À³Î
Type restrictions
¹êÅé AssignmentFn(¨ç¼Æ)
Axioms (10)
If function ªº ½d³ò ¬O class ªº ¹ê¨Ò and "function()" µ¥©ó value, then value ¬O class ªº ¹ê¨Ò.
(=>
(and
(range ?FUNCTION ?CLASS)
(equal
(AssignmentFn ?FUNCTION @ROW)
?VALUE))
(instance ?VALUE ?CLASS))
If ³Q function Âk¦^ ªºÈ ¬O classªº ¦¸ºØÃþ and "function()" µ¥©ó value, then value ¬O class ªº ¦¸ºØÃþ.
(=>
(and
(rangeSubclass ?FUNCTION ?CLASS)
(equal
(AssignmentFn ?FUNCTION @ROW)
?VALUE))
(subclass ?VALUE ?CLASS))
If rel(,inst) (¤£) ¦¨¥ßs and rel ¬O ¨ç¼Æ ªº ¹ê¨Ò, then "rel()" µ¥©ó inst.
(=>
(and
(holds ?REL @ROW ?INST)
(instance ?REL Function))
(equal
(AssignmentFn ?REL @ROW)
?INST))
- if fun ¬O ¤@¹ï¤@¨ç¼Æ ªº ¹ê¨Ò,
- then for all arg1,arg2 holds: if fun ªº ½×¤¸ ¬O class ªº ¹ê¨Ò and arg1 ¬O class ªº ¹ê¨Ò and arg2 ¬O class ªº ¹ê¨Ò and arg1 µ¥©ó arg2, then "fun(arg1)" µ¥©ó "fun(arg2)"
.
(=>
(instance ?FUN OneToOneFunction)
(forall
(?ARG1 ?ARG2)
(=>
(and
(domain ?FUN 1 ?CLASS)
(instance ?ARG1 ?CLASS)
(instance ?ARG2 ?CLASS)
(not
(equal ?ARG1 ?ARG2)))
(not
(equal
(AssignmentFn ?FUN ?ARG1)
(AssignmentFn ?FUN ?ARG2))))))
- if function ¬O Ãö³s¨ç¼Æ ªº ¹ê¨Ò,
- then for all inst1,inst2,inst3 holds: if function ªº ½×¤¸ ¬O class ªº ¹ê¨Ò and inst1 ¬O class ªº ¹ê¨Ò and inst2 ¬O class ªº ¹ê¨Ò and inst3 ¬O class ªº ¹ê¨Ò, then "function(inst1,"function(inst2,inst3)")" µ¥©ó "function("function(inst1,inst2)",inst3)"
.
(=>
(instance ?FUNCTION AssociativeFunction)
(forall
(?INST1 ?INST2 ?INST3)
(=>
(and
(domain ?FUNCTION 1 ?CLASS)
(instance ?INST1 ?CLASS)
(instance ?INST2 ?CLASS)
(instance ?INST3 ?CLASS))
(equal
(AssignmentFn
?FUNCTION
?INST1
(AssignmentFn ?FUNCTION ?INST2 ?INST3))
(AssignmentFn
?FUNCTION
(AssignmentFn ?FUNCTION ?INST1 ?INST2)
?INST3)))))
- if function ¬O ¥i´«¨ç¼Æ ªº ¹ê¨Ò,
- then for all inst1,inst2 holds: if function ªº ½×¤¸ ¬O class ªº ¹ê¨Ò and inst1 ¬O class ªº ¹ê¨Ò and inst2 ¬O class ªº ¹ê¨Ò, then "function(inst1,inst2)" µ¥©ó "function(inst2,inst1)"
.
(=>
(instance ?FUNCTION CommutativeFunction)
(forall
(?INST1 ?INST2)
(=>
(and
(domain ?FUNCTION 1 ?CLASS)
(instance ?INST1 ?CLASS)
(instance ?INST2 ?CLASS))
(equal
(AssignmentFn ?FUNCTION ?INST1 ?INST2)
(AssignmentFn ?FUNCTION ?INST2 ?INST1)))))
- if function «Ê³¬ ©ó class and function ¬O ¤@¤¸¨ç¼Æ ªº ¹ê¨Ò,
- then for all inst holds: if inst ¬O class ªº ¹ê¨Ò, then "function(inst)" ¬O class ªº ¹ê¨Ò
.
(=>
(and
(closedOn ?FUNCTION ?CLASS)
(instance ?FUNCTION UnaryFunction))
(forall
(?INST)
(=>
(instance ?INST ?CLASS)
(instance
(AssignmentFn ?FUNCTION ?INST)
?CLASS))))
- if function «Ê³¬ ©ó class and function ¬O ¤G¤¸¨ç¼Æ ªº ¹ê¨Ò,
- then for all inst1,inst2 holds: if inst1 ¬O class ªº ¹ê¨Ò and inst2 ¬O class ªº ¹ê¨Ò, then "function(inst1,inst2)" ¬O class ªº ¹ê¨Ò
.
(=>
(and
(closedOn ?FUNCTION ?CLASS)
(instance ?FUNCTION BinaryFunction))
(forall
(?INST1 ?INST2)
(=>
(and
(instance ?INST1 ?CLASS)
(instance ?INST2 ?CLASS))
(instance
(AssignmentFn ?FUNCTION ?INST1 ?INST2)
?CLASS))))
- if ¤À°t(function1,function2) holds,
- then for all inst1,inst2,inst3 holds: if function1 ªº ½×¤¸ ¬O class1 ªº ¹ê¨Ò and inst1 ¬O class1 ªº ¹ê¨Ò and inst2 ¬O class1 ªº ¹ê¨Ò and inst3 ¬O class1 ªº ¹ê¨Ò and function2 ªº ½×¤¸ ¬O class2 ªº ¹ê¨Ò and inst1 ¬O class2 ªº ¹ê¨Ò and inst2 ¬O class2 ªº ¹ê¨Ò and inst3 ¬O class2 ªº ¹ê¨Ò, then "function1(inst1,"function2(inst2,inst3)")" µ¥©ó "function2("function1(inst1,inst2)","function1(inst1,inst3)")"
.
(=>
(distributes ?FUNCTION1 ?FUNCTION2)
(forall
(?INST1 ?INST2 ?INST3)
(=>
(and
(domain ?FUNCTION1 1 ?CLASS1)
(instance ?INST1 ?CLASS1)
(instance ?INST2 ?CLASS1)
(instance ?INST3 ?CLASS1)
(domain ?FUNCTION2 1 ?CLASS2)
(instance ?INST1 ?CLASS2)
(instance ?INST2 ?CLASS2)
(instance ?INST3 ?CLASS2))
(equal
(AssignmentFn
?FUNCTION1
?INST1
(AssignmentFn ?FUNCTION2 ?INST2 ?INST3))
(AssignmentFn
?FUNCTION2
(AssignmentFn ?FUNCTION1 ?INST1 ?INST2)
(AssignmentFn ?FUNCTION1 ?INST1 ?INST3))))))
- if id ¬O function ªº ¦P¤@¤¸¯À,
- then for all inst holds: if function ªº ½×¤¸ ¬O class ªº ¹ê¨Ò and inst ¬O class ªº ¹ê¨Ò, then "function(id,inst)" µ¥©ó inst
.
(=>
(identityElement ?FUNCTION ?ID)
(forall
(?INST)
(=>
(and
(domain ?FUNCTION 1 ?CLASS)
(instance ?INST ?CLASS))
(equal
(AssignmentFn ?FUNCTION ?ID ?INST)
?INST))))