The KIF vocabulary concerning relations and functions.
Kif-Sets Kif-Lists Kif-Numbers
Frame-Ontology Vt-Domain Vt-Example Configuration-Design Vt-Design Simple-Bikes Vt-Domain ... Physical-Quantities Unary-Scalar-Functions Cml Thermodynamics Dme Thermodynamics Standard-Units Simple-Bikes Cml ... Vt-Design ... Unary-Scalar-Functions ... Scalar-Quantities Vt-Design ... Vector-Quantities Abstract-Algebra Physical-Quantities ... Jat-Generic Job-Assignment-Task Generic-Bibliography Slot-Constraint-Sugar Generic-Bibliography Kif-Ontology
Defined Relation Function One-One Many-One Unary-Function Binary-Function Unary-Relation Binary-Relation One-One Many-One One-Many Many-Many Unary-Function Undefined
The following constants were used from included theories:
The following constants were used from theories not included:
All constants that were mentioned were defined.
(<=> (Relation ?R) (And (Set ?R) (Forall (?X) (=> (Member ?X ?R) (List ?X)))) )
(<=> (Function ?F) (And (Relation ?F) (Forall (?L ?M) (=> (Member ?L ?F) (Member ?M ?F) (= (Butlast ?L) (Butlast ?M)) (= (Last ?L) (Last ?M)) ))))
The unique object which is the value of functions when applied to arguments on which they are not defined.
True of terms denoting the bottom object, usually meaning that a function is undefined on given arguments. There is exactly one object in the universe of discourse that is undefined, called BOTTOM. Functional terms that are undefined are equal to this special element.
A term is defined if it does not denote the undefined object, called bottom. (defined (F x)) means that the function F is defined for the object x. (F x) denotes its value. In relational terminology, (defined (F x)) means (exists ?y (F x ?y)).
(<=> (Defined ?X) (Not (Undefined ?X)))
If $tau$ denotes a relation, then the sentence {tt (holds $tau$ $tau_1$ ... $tau_k$)} is true if and only if
the list of objects denoted by $tau_1$,...,$tau_k$ is a member of that relation.
(Undefined (Arity Holds)) (<=> (Holds ?R @Args) (And (Relation ?R) (Member (Listof @Args) ?R)))
If $tau$ denotes a function with a value for the objects denoted by $tau_1$,..., $tau_k$, then the term {tt (value $tau$ $tau_1$ ... $tau_k$)} denotes the value of applying that function to the objects denoted by $tau_1$,...,$tau_k$. Otherwise, the value is undefined.
(Undefined (Arity Value)) (Undefined (Arity Value))
The value of the identity function is just its argument.
(Nth-Domain Apply 1 Function) (<=> (Apply ?F ?List ?Result) (And (Function ?F) (= ?List (Listof @Args)) (Value ?F @Args ?Result) ))
(= (Map ?F ?List) (If (Null ?List) (Listof) (Cons (Value ?F (First ?List)) (Map ?F (Rest ?List))) ))
The universe of a relation is the set of all objects occurring in some list contained in that relation.
(<=> (Universe ?R ?Set) (And (Relation ?R) (= (Setofall ?X (Exists (?List) (And (Member ?List ?R) (Item ?X ?List) ))) ?Set)))
A unary relation is a non-empty relation in which all lists have exactly one item.
(<=> (Unary-Relation ?R) (And (Relation ?R) (Not (Empty ?R)) (Forall (?List) (=> (Member ?List ?R) (Single ?List))) ))
A binary relation is a non-empty relation in which all lists have exactly two items.
(<=> (Binary-Relation ?R) (And (Relation ?R) (Not (Empty ?R)) (Forall (?List) (=> (Member ?List ?R) (Double ?List))) ))
The inverse of a binary relation is a binary relation with all tuples reversed.
(<=> (Inverse ?R ?Relation) (And (Binary-Relation ?R) (= (Setofall (Listof ?Y ?X) (Holds ?R ?X ?Y)) ?Relation) ))
The composition of a binary relation $r_1$ and a binary relation $r_2$ is a binary relation in which an object $x$ is related to an object $z$ if and only if there is an object $y$ such that $x$ is related to $y$ by $r_1$ and $y$ is related to $z$ by $r_2$.
(Nth-Domain Composition 2 Binary-Relation) (Nth-Domain Composition 1 Binary-Relation) (<=> (Composition ?R1 ?R2 ?Relation) (And (Binary-Relation ?R1) (Binary-Relation ?R2) (= (Setofall (Listof ?X ?Z) (Exists (?Y) (And (Holds ?R1 ?X ?Y) (Holds ?R2 ?Y ?Z) ))) ?Relation)))
Slots Of Instances:
(<=> (One-One ?R) (And (Binary-Relation ?R) (Function ?R) (Value-Type ?R Inverse Function) ))
(<=> (Many-One ?R) (And (Binary-Relation ?R) (Function ?R)))
Slots Of Instances:
(<=> (One-Many ?R) (And (Binary-Relation ?R) (Value-Type ?R Inverse Function)) )
(<=> (Many-Many ?R) (And (Binary-Relation ?R) (Not (Function ?R)) (Not (Function (Inverse ?R))) ))
A unary function is a function with a single argument and a single value. Hence, it is also a binary relation.
(<=> (Unary-Function ?F) (And (Function ?F) (Binary-Relation ?F)))
A binary function is a function with two arguments and one value. Hence, it is a relation with three arguments.
(<=> (Binary-Function ?F) (And (Function ?F) (Not (Empty ?F)) (Forall (?List) (=> (Member ?List ?F) (Triple ?List))) ))