Documentation

ExistentialRules.ChaseSequence.CoreChase.Basic

Auxiliary Theorems for the Core Chase #

We introduce a few auxiliary theorems on GroundTermMappings and cores here. Most notably, we prove that every finite set has a weak core. Eventually, these theorems should move to more appropriate places.

Applying a mapping that is the id on all constants on a function free fact does not change the fact as it only contains constants.

For two sets in a subset relation, the id mapping is always a homomorphism from the subset to its superset.

theorem FactSet.homSubset_refl {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] {fs : FactSet sig} :
fs.homSubset fs

The homSubset relation is reflexive.

theorem FactSet.homSubset_trans {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] {A B C : FactSet sig} :
A.homSubset BB.homSubset CA.homSubset C

The homSubset relation is transitive.

The empty fact set is a weak core.

theorem FactSet.isWeakCore_list_of_each_homSubset_eq {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] {l : List (Fact sig)} :
(∀ (sub : List (Fact sig)), homSubset sub.toSet l.toSetsub.toSet = l.toSet)isWeakCore l.toSet

If a list has no proper homomorphic sublist, then the list forms a weak core.

Every list has a weak core. I.e. it is either itself a weak core or has a proper homomorphic sublist that is a weak core.

Each finite fact set has a weak core.

Each Database is a weak core.