Function Butlast

Instance-Of@Frame-Ontology:
Binary-Relation@Ol-User%Kif-Relations, Function@Ol-User%Kif-Relations, Relation@Ol-User%Kif-Relations, Set@Ol-User%Kif-Sets
Arity@Frame-Ontology: 2

Implication Axioms mentioning Butlast:

(=> (= (Exact-Domain@Frame-Ontology ?Relation) ?Domain-Relation)
    (Forall (?Tuple @Args)
            (<=> (Holds@Ol-User%Kif-Relations ?Domain-Relation @Args)
                 (And (Member@Ol-User%Kif-Sets ?Tuple ?Relation)
                      (= (Listof @Args) (Butlast ?Tuple))))))

(=> (= (Exact-Domain@Frame-Ontology ?Relation) ?Domain-Relation)
    (Forall (?Tuple)
            (=> (Member@Ol-User%Kif-Sets ?Tuple ?Relation)
                (Not (Empty@Ol-User%Kif-Sets (Butlast ?Tuple))))))

(=> (Composition-Of@Frame-Ontology ?Binary-Relation
                    ?List-Of-Relations)
    (Or (And (Single ?List-Of-Relations)
             (= ?Binary-Relation (First ?List-Of-Relations)))
        (And (Double ?List-Of-Relations)
             (= ?Binary-Relation
                (Composition@Ol-User%Kif-Relations 
                    (First (Rest ?List-Of-Relations))
                    (First ?List-Of-Relations))))
        (Exists 
            (?Left-Sub-Relation)
            (And (= ?Binary-Relation
                    (Composition@Ol-User%Kif-Relations 
                        (Last ?List-Of-Relations)
                        ?Left-Sub-Relation))
                 (Composition-Of@Frame-Ontology 
                     ?Left-Sub-Relation
                     (Butlast ?List-Of-Relations))))))

(=> (Function@Ol-User%Kif-Relations ?Relation)
    (Forall (?Tuple1 ?Tuple2)
            (=> (Member@Ol-User%Kif-Sets ?Tuple1 ?Relation)
                (Member@Ol-User%Kif-Sets ?Tuple2 ?Relation)
                (= (Butlast ?Tuple1) (Butlast ?Tuple2))
                (= (Last ?Tuple1) (Last ?Tuple2)))))


Equivalence Axioms mentioning Butlast:

(<=> (Exact-Domain@Frame-Ontology ?Relation)
     (And (Relation@Ol-User%Kif-Relations ?Relation)
          (Relation@Ol-User%Kif-Relations ?Domain-Relation)
          (Forall (?Tuple)
                  (=> (Member@Ol-User%Kif-Sets ?Tuple ?Relation)
                      (Not (Empty@Ol-User%Kif-Sets (Butlast ?Tuple)))))
          (Forall (?Tuple @Args)
                  (<=> (Holds@Ol-User%Kif-Relations ?Domain-Relation
                              @Args)
                       (And (Member@Ol-User%Kif-Sets ?Tuple
                                    ?Relation)
                            (= (Listof @Args) (Butlast ?Tuple)))))))

(<=> (Composition-Of@Frame-Ontology ?Binary-Relation
                     ?List-Of-Relations)
     (And (Binary-Relation@Ol-User%Kif-Relations ?Binary-Relation)
          (List ?List-Of-Relations)
          (Not (Null ?List-Of-Relations))
          (=> (Item ?R ?List-Of-Relations)
              (Binary-Relation@Ol-User%Kif-Relations ?R))
          (Or (And (Single ?List-Of-Relations)
                   (= ?Binary-Relation (First ?List-Of-Relations)))
              (And (Double ?List-Of-Relations)
                   (= ?Binary-Relation
                      (Composition@Ol-User%Kif-Relations 
                          (First (Rest ?List-Of-Relations))
                          (First ?List-Of-Relations))))
              (Exists 
                  (?Left-Sub-Relation)
                  (And (= ?Binary-Relation
                          (Composition@Ol-User%Kif-Relations 
                              (Last ?List-Of-Relations)
                              ?Left-Sub-Relation))
                       (Composition-Of@Frame-Ontology 
                           ?Left-Sub-Relation
                           (Butlast ?List-Of-Relations)))))))

(<=> (Function@Ol-User%Kif-Relations ?Relation)
     (And (Relation@Ol-User%Kif-Relations ?Relation)
          (Forall (?Tuple1 ?Tuple2)
                  (=> (Member@Ol-User%Kif-Sets ?Tuple1 ?Relation)
                      (Member@Ol-User%Kif-Sets ?Tuple2 ?Relation)
                      (= (Butlast ?Tuple1) (Butlast ?Tuple2))
                      (= (Last ?Tuple1) (Last ?Tuple2))))))