Atoms over variables #
An atom R(x₁, …, xₙ) applies a relation symbol to variables, and an assignment realizes a set
of atoms when it makes each of them true. A set of atoms presents a structure on its variables,
its canonical structure, in which a relation holds of exactly the tuples its atoms list. The
assignments realizing a set of atoms in a structure are the homomorphisms out of its canonical
structure, so one set of atoms entails another along a map of variables in every structure
exactly when the map carries the atoms of the second into the first. This is Chandra and Merlin's
theorem on the containment of conjunctive queries.
Main definitions #
FirstOrder.Language.Atom: atoms, renamed byAtom.map, permuted byEquiv.Perm, and read as atomic formulas byAtom.toFormula.FirstOrder.Language.Atom.realizers: the assignments realizing a set of atoms.FirstOrder.Language.Atom.Canonical: the structure a set of atoms presents on its variables.
Main statements #
FirstOrder.Language.Atom.Canonical.homEquiv: the homomorphisms out of the canonical structure are the realizing assignments.FirstOrder.Language.Atom.forall_realizers_subset_preimage_iff: entailment along a map in every structure is inclusion of the renamed atoms.
References #
An assignment realizes an atom when the relation holds of the values of its variables.
Instances For
Permutations of the variables act on atoms by renaming.
Equations
- FirstOrder.Language.Atom.instMulActionPerm = { smul := fun (σ : Equiv.Perm α) (a : L.Atom α) => FirstOrder.Language.Atom.map (⇑σ) a, mul_smul := ⋯, one_smul := ⋯ }
The assignments that realize every atom of a set.
Equations
- FirstOrder.Language.Atom.realizers M T = upperPolar (fun (a : L.Atom α) (v : α → M) => a.Realize v) T
Instances For
A homomorphism carries an assignment realizing a set of atoms to one realizing it.
The structure a set of atoms presents on its variables.
Equations
Instances For
A variable, as an element of the canonical structure.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
A map of variables realizes a set of atoms in the canonical structure of another exactly when it carries the first into the second.
The homomorphisms out of the canonical structure are the realizing assignments.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One set of atoms entails another along a map of variables in every structure exactly when the map carries the atoms of the second into the first.