# Axioms for lists using compact lists # @prefix rdf: . @prefix s: . # @prefix daml: . # @prefix dpo: . # @prefix ex: . @prefix log: . @prefix : . # Local stuff # @prefix foo: . # Local stuff @prefix foo: . # Local stuff @forAll :d, :e, :l, :m, :n, :o, :p, :s, :S, :s1, :x, :y, :F, :G, :H. # List generators are things which work as lists and also if you # use them as a predicate they construct a list one longer. () a :compactList. { :l () :m } log:implies { :l a :compactList. :l :tail :m }. { :k :l :e. :l a :compactList } log:implies { :k a :compactList}. { :k :l :e. :l a :compactList } log:implies { :k daml:first :e; daml:rest :l.}. #ends