(Exhaustive-Subclass-Partition Reference
(Setof Publication-Reference
Non-Publication-Reference))
(=> (Ref.Document $X $Y) (Publication-Reference $X))
(<=> (Inherits-Author-From-Document ?Ref)
(And (Publication-Reference ?Ref)
(Same-Values ?Ref
Ref.Author
(Compose Doc.Author-Name Ref.Document))))
(<=> (Inherits-Publisher-From-Document ?Ref)
(And (Publication-Reference ?Ref)
(Same-Values ?Ref
Ref.Publisher
(Compose Publisher.Name
Doc.Publisher
Ref.Document))
(Same-Values ?Ref
Ref.Address
(Compose Publisher.Address
Doc.Publisher
Ref.Document))))
(<=> (Inherits-Year-From-Document ?Ref)
(And (Publication-Reference ?Ref)
(Same-Values ?Ref
Ref.Year
(Compose Timepoint.Year
Doc.Publication-Date
Ref.Document))))
(<=> (Inherits-Title-From-Document ?Ref)
(And (Publication-Reference ?Ref)
(Same-Values ?Ref
Ref.Title
(Compose Doc.Title Ref.Document))))
(<=> (Book-Publication-Data-Constraint ?Ref)
(And (Publication-Reference ?Ref)
(Value-Cardinality ?Ref Ref.Document 1)
(Value-Type ?Ref Ref.Document Book)
(Value-Cardinality ?Ref Ref.Publisher 1)
(Inherits-Publisher-From-Document ?Ref)
(Value-Cardinality ?Ref Ref.Year 1)
(Inherits-Year-From-Document ?Ref)))