@prefix : <#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .

rdfs:containerMembershipProperty 
   rdfs:subClassOf rdf:Property; 
   a rdfs:Class .
rdfs:range 
   a rdfs:ConstraintProperty, rdf:Property; 
   rdfs:domain rdf:Property; 
   rdfs:range rdfs:Class .
rdfs:domain 
   a rdfs:ConstraintProperty, rdf:Property; 
   rdfs:domain rdf:Property; 
   rdfs:range rdfs:Class .
rdfs:ConstraintProperty 
   rdfs:subClassOf rdf:Property, rdfs:ConstraintResource;
   a rdfs:Class .
rdfs:ConstraintResource 
   a rdfs:Class .
rdfs:Class 
   a rdfs:Class; 
   rdfs:subClassOf rdfs:Resource .
rdfs:Literal 
   a rdfs:Class .
rdfs:Resource 
   a rdfs:Class .
rdf:type 
   a rdf:Property; 
   rdfs:domain rdfs:Resource; 
   rdfs:range rdfs:Class .
rdf:Property 
   a rdfs:Class; 
   rdfs:subClassOf rdfs:Resource .
rdfs:label 
   a rdf:Property; 
   rdfs:domain rdfs:Resource; 
   rdfs:range rdfs:Literal .
rdfs:isDefinedBy 
   a rdf:Property .
rdfs:comment 
   a rdf:Property; 
   rdfs:domain rdfs:Resource; 
   rdfs:range rdfs:Literal .
rdfs:seeAlso 
   a rdf:Property .
rdfs:subClassOf 
   a rdf:Property; 
   rdfs:domain rdfs:Class; 
   rdfs:range rdfs:Class .
rdfs:subPropertyOf 
   a rdf:Property; 
   rdfs:domain rdf:Property; 
   rdfs:range rdf:Property .

{ { :x :y :z . :y rdfs:range :p }
  log:implies
  { :z a :p }
} a log:Truth; log:forAll :x , :y , :z , :p .

{ { :x :y :z . :y rdfs:domain :p }
  log:implies
  { :x a :p } .
} a log:Truth; log:forAll :x , :y , :z , :p .

{ { :x rdfs:subClassOf :y . :z a :x }
  log:implies
  { :z a :y }
} a log:Truth; log:forAll :x , :y , :z .