model_theory.skolem
⟷
Mathlib.ModelTheory.Skolem
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -166,8 +166,8 @@ theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (
refine' ⟨h1, (mk_union_le _ _).trans _, (lift_le.2 card_functions_sum_skolem₁_le).trans _⟩
· rw [← lift_le, lift_add, h, add_comm, add_eq_max h1]
exact max_le le_rfl h2
- · rw [lift_max, lift_aleph_0, max_le_iff, aleph_0_le_lift, and_comm', ← lift_le.{_, w'},
- lift_lift, lift_lift, ← aleph_0_le_lift, h]
+ · rw [lift_max, lift_aleph_0, max_le_iff, aleph_0_le_lift, and_comm, ← lift_le.{_, w'}, lift_lift,
+ lift_lift, ← aleph_0_le_lift, h]
refine' ⟨_, h1⟩
simp only [← lift_lift, lift_umax, lift_umax']
rw [lift_lift, ← lift_lift.{w', w} L.card]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -151,13 +151,13 @@ theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (
∃ S : L.ElementarySubstructure M, s ⊆ S ∧ Cardinal.lift.{w'} (#S) = Cardinal.lift.{w} κ :=
by
obtain ⟨s', hs'⟩ := Cardinal.le_mk_iff_exists_set.1 h4
- rw [← aleph_0_le_lift] at h1
+ rw [← aleph_0_le_lift] at h1
rw [← hs'] at *
refine'
⟨elementary_skolem₁_reduct (closure (L.sum L.skolem₁) (s ∪ Equiv.ulift '' s')),
(s.subset_union_left _).trans subset_closure, _⟩
have h := mk_image_eq_lift _ s' equiv.ulift.injective
- rw [lift_umax, lift_id'] at h
+ rw [lift_umax, lift_id'] at h
rw [coe_sort_elementary_skolem₁_reduct, ← h, lift_inj]
refine'
le_antisymm (lift_le.1 (lift_card_closure_le.trans _))
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-/
-import Mathbin.ModelTheory.ElementaryMaps
+import ModelTheory.ElementaryMaps
#align_import model_theory.skolem from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-
-! This file was ported from Lean 3 source module model_theory.skolem
-! leanprover-community/mathlib commit dbdf71cee7bb20367cb7e37279c08b0c218cf967
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.ModelTheory.ElementaryMaps
+#align_import model_theory.skolem from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
+
/-!
# Skolem Functions and Downward Löwenheim–Skolem
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -70,6 +70,7 @@ theorem card_functions_sum_skolem₁ :
#align first_order.language.card_functions_sum_skolem₁ FirstOrder.Language.card_functions_sum_skolem₁
-/
+#print FirstOrder.Language.card_functions_sum_skolem₁_le /-
theorem card_functions_sum_skolem₁_le : (#Σ n, (L.Sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card :=
by
rw [card_functions_sum_skolem₁]
@@ -81,6 +82,7 @@ theorem card_functions_sum_skolem₁_le : (#Σ n, (L.Sum L.skolem₁).Functions
· refine' trans bounded_formula.card_le (lift_le.1 _)
simp only [mk_empty, lift_zero, lift_uzero, zero_add]
#align first_order.language.card_functions_sum_skolem₁_le FirstOrder.Language.card_functions_sum_skolem₁_le
+-/
#print FirstOrder.Language.skolem₁Structure /-
/-- The structure assigning each function symbol of `L.skolem₁` to a skolem function generated with
@@ -93,6 +95,7 @@ noncomputable instance skolem₁Structure : L.skolem₁.Structure M :=
namespace Substructure
+#print FirstOrder.Language.Substructure.skolem₁_reduct_isElementary /-
theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
(LHom.sumInl.substructureReduct S).IsElementary :=
by
@@ -103,6 +106,7 @@ theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
⟨⟨fun_map φ' (coe ∘ x), S.fun_mem (Lhom.sum_inr.on_function φ) (coe ∘ x) fun i => (x i).2⟩,
Classical.epsilon_spec ⟨a, h⟩⟩
#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementary
+-/
#print FirstOrder.Language.Substructure.elementarySkolem₁Reduct /-
/-- Any `L.sum L.skolem₁`-substructure is an elementary `L`-substructure. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -56,7 +56,7 @@ variable {L}
#print FirstOrder.Language.card_functions_sum_skolem₁ /-
theorem card_functions_sum_skolem₁ :
- (#Σn, (L.Sum L.skolem₁).Functions n) = (#Σn, L.BoundedFormula Empty (n + 1)) :=
+ (#Σ n, (L.Sum L.skolem₁).Functions n) = (#Σ n, L.BoundedFormula Empty (n + 1)) :=
by
simp only [card_functions_sum, skolem₁_functions, lift_id', mk_sigma, sum_add_distrib']
rw [add_comm, add_eq_max, max_eq_left]
@@ -70,10 +70,10 @@ theorem card_functions_sum_skolem₁ :
#align first_order.language.card_functions_sum_skolem₁ FirstOrder.Language.card_functions_sum_skolem₁
-/
-theorem card_functions_sum_skolem₁_le : (#Σn, (L.Sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card :=
+theorem card_functions_sum_skolem₁_le : (#Σ n, (L.Sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card :=
by
rw [card_functions_sum_skolem₁]
- trans #Σn, L.bounded_formula Empty n
+ trans #Σ n, L.bounded_formula Empty n
·
exact
⟨⟨Sigma.map Nat.succ fun _ => id,
@@ -150,13 +150,13 @@ theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (
∃ S : L.ElementarySubstructure M, s ⊆ S ∧ Cardinal.lift.{w'} (#S) = Cardinal.lift.{w} κ :=
by
obtain ⟨s', hs'⟩ := Cardinal.le_mk_iff_exists_set.1 h4
- rw [← aleph_0_le_lift] at h1
+ rw [← aleph_0_le_lift] at h1
rw [← hs'] at *
refine'
⟨elementary_skolem₁_reduct (closure (L.sum L.skolem₁) (s ∪ Equiv.ulift '' s')),
(s.subset_union_left _).trans subset_closure, _⟩
have h := mk_image_eq_lift _ s' equiv.ulift.injective
- rw [lift_umax, lift_id'] at h
+ rw [lift_umax, lift_id'] at h
rw [coe_sort_elementary_skolem₁_reduct, ← h, lift_inj]
refine'
le_antisymm (lift_le.1 (lift_card_closure_le.trans _))
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -39,7 +39,7 @@ namespace Language
open Structure Cardinal
-open Cardinal
+open scoped Cardinal
variable (L : Language.{u, v}) {M : Type w} [Nonempty M] [L.Structure M]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -70,12 +70,6 @@ theorem card_functions_sum_skolem₁ :
#align first_order.language.card_functions_sum_skolem₁ FirstOrder.Language.card_functions_sum_skolem₁
-/
-/- warning: first_order.language.card_functions_sum_skolem₁_le -> FirstOrder.Language.card_functions_sum_skolem₁_le is a dubious translation:
-lean 3 declaration is
- forall {L : FirstOrder.Language.{u1, u2}}, LE.le.{succ (max u1 u2)} Cardinal.{max u1 u2} Cardinal.hasLe.{max u1 u2} (Cardinal.mk.{max u1 u2} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => FirstOrder.Language.Functions.{max u1 u2, u2} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) n))) (LinearOrder.max.{succ (max u1 u2)} Cardinal.{max u1 u2} Cardinal.linearOrder.{max u1 u2} Cardinal.aleph0.{max u1 u2} (FirstOrder.Language.card.{u1, u2} L))
-but is expected to have type
- forall {L : FirstOrder.Language.{u1, u2}}, LE.le.{max (succ u1) (succ u2)} Cardinal.{max u1 u2} Cardinal.instLECardinal.{max u1 u2} (Cardinal.mk.{max u1 u2} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => FirstOrder.Language.Functions.{max u1 u2, u2} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) n))) (Max.max.{succ (max u1 u2)} Cardinal.{max u1 u2} (CanonicallyLinearOrderedAddMonoid.toMax.{max (succ u1) (succ u2)} Cardinal.{max u1 u2} Cardinal.instCanonicallyLinearOrderedAddMonoidCardinal.{max u1 u2}) Cardinal.aleph0.{max u1 u2} (FirstOrder.Language.card.{u1, u2} L))
-Case conversion may be inaccurate. Consider using '#align first_order.language.card_functions_sum_skolem₁_le FirstOrder.Language.card_functions_sum_skolem₁_leₓ'. -/
theorem card_functions_sum_skolem₁_le : (#Σn, (L.Sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card :=
by
rw [card_functions_sum_skolem₁]
@@ -99,9 +93,6 @@ noncomputable instance skolem₁Structure : L.skolem₁.Structure M :=
namespace Substructure
-/- warning: first_order.language.substructure.skolem₁_reduct_is_elementary -> FirstOrder.Language.Substructure.skolem₁_reduct_isElementary is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementaryₓ'. -/
theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
(LHom.sumInl.substructureReduct S).IsElementary :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -100,10 +100,7 @@ noncomputable instance skolem₁Structure : L.skolem₁.Structure M :=
namespace Substructure
/- warning: first_order.language.substructure.skolem₁_reduct_is_elementary -> FirstOrder.Language.Substructure.skolem₁_reduct_isElementary is a dubious translation:
-lean 3 declaration is
- forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (coeFn.{succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)))))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2))))) (fun (_x : RelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) => (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) -> (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2)) (RelEmbedding.hasCoeToFun.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
-but is expected to have type
- forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (FunLike.coe.{succ u3, succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (fun (_x : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) _x) (RelHomClass.toFunLike.{u3, u3, u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
+<too large>
Case conversion may be inaccurate. Consider using '#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementaryₓ'. -/
theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
(LHom.sumInl.substructureReduct S).IsElementary :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -103,7 +103,7 @@ namespace Substructure
lean 3 declaration is
forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (coeFn.{succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)))))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2))))) (fun (_x : RelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) => (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) -> (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2)) (RelEmbedding.hasCoeToFun.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
but is expected to have type
- forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (FunLike.coe.{succ u3, succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (fun (_x : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) _x) (RelHomClass.toFunLike.{u3, u3, u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
+ forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (FunLike.coe.{succ u3, succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (fun (_x : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) _x) (RelHomClass.toFunLike.{u3, u3, u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699) (RelEmbedding.instRelHomClassRelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
Case conversion may be inaccurate. Consider using '#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementaryₓ'. -/
theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
(LHom.sumInl.substructureReduct S).IsElementary :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -101,7 +101,7 @@ namespace Substructure
/- warning: first_order.language.substructure.skolem₁_reduct_is_elementary -> FirstOrder.Language.Substructure.skolem₁_reduct_isElementary is a dubious translation:
lean 3 declaration is
- forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (coeFn.{succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2))))) (fun (_x : RelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) => (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) -> (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2)) (RelEmbedding.hasCoeToFun.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
+ forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (coeFn.{succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)))))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2))))) (fun (_x : RelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) => (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) -> (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2)) (RelEmbedding.hasCoeToFun.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toHasLe.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
but is expected to have type
forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (FunLike.coe.{succ u3, succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (fun (_x : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) _x) (RelHomClass.toFunLike.{u3, u3, u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
Case conversion may be inaccurate. Consider using '#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementaryₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
! This file was ported from Lean 3 source module model_theory.skolem
-! leanprover-community/mathlib commit 3d7987cda72abc473c7cdbbb075170e9ac620042
+! leanprover-community/mathlib commit dbdf71cee7bb20367cb7e37279c08b0c218cf967
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.ModelTheory.ElementaryMaps
/-!
# Skolem Functions and Downward Löwenheim–Skolem
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
## Main Definitions
* `first_order.language.skolem₁` is a language consisting of Skolem functions for another language.
mathlib commit https://github.com/leanprover-community/mathlib/commit/403190b5419b3f03f1a2893ad9352ca7f7d8bff6
@@ -40,15 +40,18 @@ open Cardinal
variable (L : Language.{u, v}) {M : Type w} [Nonempty M] [L.Structure M]
+#print FirstOrder.Language.skolem₁ /-
/-- A language consisting of Skolem functions for another language.
Called `skolem₁` because it is the first step in building a Skolemization of a language. -/
@[simps]
def skolem₁ : Language :=
⟨fun n => L.BoundedFormula Empty (n + 1), fun _ => Empty⟩
#align first_order.language.skolem₁ FirstOrder.Language.skolem₁
+-/
variable {L}
+#print FirstOrder.Language.card_functions_sum_skolem₁ /-
theorem card_functions_sum_skolem₁ :
(#Σn, (L.Sum L.skolem₁).Functions n) = (#Σn, L.BoundedFormula Empty (n + 1)) :=
by
@@ -62,7 +65,14 @@ theorem card_functions_sum_skolem₁ :
· rw [← mk_sigma]
exact infinite_iff.1 (Infinite.of_injective (fun n => ⟨n, ⊥⟩) fun x y xy => (Sigma.mk.inj xy).1)
#align first_order.language.card_functions_sum_skolem₁ FirstOrder.Language.card_functions_sum_skolem₁
+-/
+/- warning: first_order.language.card_functions_sum_skolem₁_le -> FirstOrder.Language.card_functions_sum_skolem₁_le is a dubious translation:
+lean 3 declaration is
+ forall {L : FirstOrder.Language.{u1, u2}}, LE.le.{succ (max u1 u2)} Cardinal.{max u1 u2} Cardinal.hasLe.{max u1 u2} (Cardinal.mk.{max u1 u2} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => FirstOrder.Language.Functions.{max u1 u2, u2} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) n))) (LinearOrder.max.{succ (max u1 u2)} Cardinal.{max u1 u2} Cardinal.linearOrder.{max u1 u2} Cardinal.aleph0.{max u1 u2} (FirstOrder.Language.card.{u1, u2} L))
+but is expected to have type
+ forall {L : FirstOrder.Language.{u1, u2}}, LE.le.{max (succ u1) (succ u2)} Cardinal.{max u1 u2} Cardinal.instLECardinal.{max u1 u2} (Cardinal.mk.{max u1 u2} (Sigma.{0, max u1 u2} Nat (fun (n : Nat) => FirstOrder.Language.Functions.{max u1 u2, u2} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) n))) (Max.max.{succ (max u1 u2)} Cardinal.{max u1 u2} (CanonicallyLinearOrderedAddMonoid.toMax.{max (succ u1) (succ u2)} Cardinal.{max u1 u2} Cardinal.instCanonicallyLinearOrderedAddMonoidCardinal.{max u1 u2}) Cardinal.aleph0.{max u1 u2} (FirstOrder.Language.card.{u1, u2} L))
+Case conversion may be inaccurate. Consider using '#align first_order.language.card_functions_sum_skolem₁_le FirstOrder.Language.card_functions_sum_skolem₁_leₓ'. -/
theorem card_functions_sum_skolem₁_le : (#Σn, (L.Sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card :=
by
rw [card_functions_sum_skolem₁]
@@ -75,19 +85,27 @@ theorem card_functions_sum_skolem₁_le : (#Σn, (L.Sum L.skolem₁).Functions n
simp only [mk_empty, lift_zero, lift_uzero, zero_add]
#align first_order.language.card_functions_sum_skolem₁_le FirstOrder.Language.card_functions_sum_skolem₁_le
+#print FirstOrder.Language.skolem₁Structure /-
/-- The structure assigning each function symbol of `L.skolem₁` to a skolem function generated with
choice. -/
noncomputable instance skolem₁Structure : L.skolem₁.Structure M :=
⟨fun n φ x => Classical.epsilon fun a => φ.realize default (Fin.snoc x a : _ → M), fun _ r =>
Empty.elim r⟩
#align first_order.language.skolem₁_Structure FirstOrder.Language.skolem₁Structure
+-/
namespace Substructure
+/- warning: first_order.language.substructure.skolem₁_reduct_is_elementary -> FirstOrder.Language.Substructure.skolem₁_reduct_isElementary is a dubious translation:
+lean 3 declaration is
+ forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (coeFn.{succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2))))) (fun (_x : RelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) => (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) -> (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2)) (RelEmbedding.hasCoeToFun.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) M (FirstOrder.Language.Substructure.instSetLike.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (SetLike.partialOrder.{u3, u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) M (FirstOrder.Language.Substructure.instSetLike.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
+but is expected to have type
+ forall {L : FirstOrder.Language.{u1, u2}} {M : Type.{u3}} [_inst_1 : Nonempty.{succ u3} M] [_inst_2 : FirstOrder.Language.Structure.{u1, u2, u3} L M] (S : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))), FirstOrder.Language.Substructure.IsElementary.{u1, u2, u3} L M _inst_2 (FunLike.coe.{succ u3, succ u3, succ u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (fun (_x : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) _x) (RelHomClass.toFunLike.{u3, u3, u3} (OrderEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2)))))) (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{u3, u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) => LE.le.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) (FirstOrder.Language.Substructure.instCompleteLattice.{max u1 u2, u2, u3} (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) M (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) => LE.le.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (Preorder.toLE.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (PartialOrder.toPreorder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (FirstOrder.Language.Substructure.{u1, u2, u3} L M _inst_2) (FirstOrder.Language.Substructure.instCompleteLattice.{u1, u2, u3} L M _inst_2))))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (FirstOrder.Language.LHom.substructureReduct.{u1, u2, u3, max u1 u2, u2} L M _inst_2 (FirstOrder.Language.sum.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.sumStructure.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2)) (FirstOrder.Language.LHom.sumInl.{u1, u2, max u1 u2, 0} L (FirstOrder.Language.skolem₁.{u1, u2} L)) (FirstOrder.Language.LHom.sumInl_isExpansionOn.{u1, u2, max u1 u2, 0, u3} L (FirstOrder.Language.skolem₁.{u1, u2} L) M _inst_2 (FirstOrder.Language.skolem₁Structure.{u1, u2, u3} L M _inst_1 _inst_2))) S)
+Case conversion may be inaccurate. Consider using '#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementaryₓ'. -/
theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
(LHom.sumInl.substructureReduct S).IsElementary :=
by
- apply (Lhom.sum_inl.substructure_reduct S).is_elementary_of_exists
+ apply (Lhom.sum_inl.substructure_reduct S).isElementary_of_exists
intro n φ x a h
let φ' : (L.sum L.skolem₁).Functions n := Lhom.sum_inr.on_function φ
exact
@@ -95,16 +113,20 @@ theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
Classical.epsilon_spec ⟨a, h⟩⟩
#align first_order.language.substructure.skolem₁_reduct_is_elementary FirstOrder.Language.Substructure.skolem₁_reduct_isElementary
+#print FirstOrder.Language.Substructure.elementarySkolem₁Reduct /-
/-- Any `L.sum L.skolem₁`-substructure is an elementary `L`-substructure. -/
noncomputable def elementarySkolem₁Reduct (S : (L.Sum L.skolem₁).Substructure M) :
L.ElementarySubstructure M :=
⟨LHom.sumInl.substructureReduct S, S.skolem₁_reduct_isElementary⟩
#align first_order.language.substructure.elementary_skolem₁_reduct FirstOrder.Language.Substructure.elementarySkolem₁Reduct
+-/
+#print FirstOrder.Language.Substructure.coeSort_elementarySkolem₁Reduct /-
theorem coeSort_elementarySkolem₁Reduct (S : (L.Sum L.skolem₁).Substructure M) :
(S.elementarySkolem₁Reduct : Type w) = S :=
rfl
#align first_order.language.substructure.coe_sort_elementary_skolem₁_reduct FirstOrder.Language.Substructure.coeSort_elementarySkolem₁Reduct
+-/
end Substructure
@@ -117,12 +139,15 @@ instance : Small (⊥ : (L.Sum L.skolem₁).Substructure M).elementarySkolem₁R
rw [coe_sort_elementary_skolem₁_reduct]
infer_instance
+#print FirstOrder.Language.exists_small_elementarySubstructure /-
theorem exists_small_elementarySubstructure : ∃ S : L.ElementarySubstructure M, Small.{max u v} S :=
⟨Substructure.elementarySkolem₁Reduct ⊥, inferInstance⟩
#align first_order.language.exists_small_elementary_substructure FirstOrder.Language.exists_small_elementarySubstructure
+-/
variable {M}
+#print FirstOrder.Language.exists_elementarySubstructure_card_eq /-
/-- The Downward Löwenheim–Skolem theorem :
If `s` is a set in an `L`-structure `M` and `κ` an infinite cardinal such that
`max (# s, L.card) ≤ κ` and `κ ≤ # M`, then `M` has an elementary substructure containing `s` of
@@ -160,6 +185,7 @@ theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (
rw [aleph_0_le_lift, ← aleph_0_le_lift, h]
exact h1
#align first_order.language.exists_elementary_substructure_card_eq FirstOrder.Language.exists_elementarySubstructure_card_eq
+-/
end Language
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -85,7 +85,7 @@ noncomputable instance skolem₁Structure : L.skolem₁.Structure M :=
namespace Substructure
theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
- (Lhom.sumInl.substructureReduct S).IsElementary :=
+ (LHom.sumInl.substructureReduct S).IsElementary :=
by
apply (Lhom.sum_inl.substructure_reduct S).is_elementary_of_exists
intro n φ x a h
@@ -98,7 +98,7 @@ theorem skolem₁_reduct_isElementary (S : (L.Sum L.skolem₁).Substructure M) :
/-- Any `L.sum L.skolem₁`-substructure is an elementary `L`-substructure. -/
noncomputable def elementarySkolem₁Reduct (S : (L.Sum L.skolem₁).Substructure M) :
L.ElementarySubstructure M :=
- ⟨Lhom.sumInl.substructureReduct S, S.skolem₁_reduct_isElementary⟩
+ ⟨LHom.sumInl.substructureReduct S, S.skolem₁_reduct_isElementary⟩
#align first_order.language.substructure.elementary_skolem₁_reduct FirstOrder.Language.Substructure.elementarySkolem₁Reduct
theorem coeSort_elementarySkolem₁Reduct (S : (L.Sum L.skolem₁).Substructure M) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
This PR splits the file ModelTheory/ElementaryMaps
into two files, moving elementary substructure code into ModelTheory/ElementarySubstructures
, to make room for new API on those.
Two basic lemmas, FirstOrder.Language.Substructure.realize_boundedFormula_top
and FirstOrder.Language.Substructure.realize_formula_top
, are instead moved to the file ModelTheory/Substructures
.
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: Aaron Anderson <65780815+awainverse@users.noreply.github.com>
@@ -3,7 +3,7 @@ Copyright (c) 2022 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-/
-import Mathlib.ModelTheory.ElementaryMaps
+import Mathlib.ModelTheory.ElementarySubstructures
#align_import model_theory.skolem from "leanprover-community/mathlib"@"3d7987cda72abc473c7cdbbb075170e9ac620042"
Mark these named theorems: Rice, Downward and Upward Skolem
@@ -124,7 +124,7 @@ theorem exists_small_elementarySubstructure : ∃ S : L.ElementarySubstructure M
variable {M}
-/-- The Downward Löwenheim–Skolem theorem :
+/-- The **Downward Löwenheim–Skolem theorem** :
If `s` is a set in an `L`-structure `M` and `κ` an infinite cardinal such that
`max (#s, L.card) ≤ κ` and `κ ≤ # M`, then `M` has an elementary substructure containing `s` of
cardinality `κ`. -/
@@ -2,14 +2,11 @@
Copyright (c) 2022 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-
-! This file was ported from Lean 3 source module model_theory.skolem
-! leanprover-community/mathlib commit 3d7987cda72abc473c7cdbbb075170e9ac620042
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.ModelTheory.ElementaryMaps
+#align_import model_theory.skolem from "leanprover-community/mathlib"@"3d7987cda72abc473c7cdbbb075170e9ac620042"
+
/-!
# Skolem Functions and Downward Löwenheim–Skolem
@@ -19,7 +19,7 @@ import Mathlib.ModelTheory.ElementaryMaps
## Main Results
* `FirstOrder.Language.exists_elementarySubstructure_card_eq` is the Downward Löwenheim–Skolem
theorem: If `s` is a set in an `L`-structure `M` and `κ` an infinite cardinal such that
- `max (# s, L.card) ≤ κ` and `κ ≤ # M`, then `M` has an elementary substructure containing `s` of
+ `max (#s, L.card) ≤ κ` and `κ ≤ # M`, then `M` has an elementary substructure containing `s` of
cardinality `κ`.
## TODO
@@ -51,7 +51,7 @@ def skolem₁ : Language :=
variable {L}
theorem card_functions_sum_skolem₁ :
- (#Σ n, (L.sum L.skolem₁).Functions n) = (#Σ n, L.BoundedFormula Empty (n + 1)) := by
+ #(Σ n, (L.sum L.skolem₁).Functions n) = #(Σ n, L.BoundedFormula Empty (n + 1)) := by
simp only [card_functions_sum, skolem₁_Functions, mk_sigma, sum_add_distrib']
conv_lhs => enter [2, 1, i]; rw [lift_id'.{u, v}]
rw [add_comm, add_eq_max, max_eq_left]
@@ -65,9 +65,9 @@ theorem card_functions_sum_skolem₁ :
(Sigma.mk.inj_iff.1 xy).1)
#align first_order.language.card_functions_sum_skolem₁ FirstOrder.Language.card_functions_sum_skolem₁
-theorem card_functions_sum_skolem₁_le : (#Σn, (L.sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card := by
+theorem card_functions_sum_skolem₁_le : #(Σ n, (L.sum L.skolem₁).Functions n) ≤ max ℵ₀ L.card := by
rw [card_functions_sum_skolem₁]
- trans #Σ n, L.BoundedFormula Empty n
+ trans #(Σ n, L.BoundedFormula Empty n)
· exact
⟨⟨Sigma.map Nat.succ fun _ => id,
Nat.succ_injective.sigma_map fun _ => Function.injective_id⟩⟩
@@ -129,13 +129,13 @@ variable {M}
/-- The Downward Löwenheim–Skolem theorem :
If `s` is a set in an `L`-structure `M` and `κ` an infinite cardinal such that
- `max (# s, L.card) ≤ κ` and `κ ≤ # M`, then `M` has an elementary substructure containing `s` of
+ `max (#s, L.card) ≤ κ` and `κ ≤ # M`, then `M` has an elementary substructure containing `s` of
cardinality `κ`. -/
theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (h1 : ℵ₀ ≤ κ)
- (h2 : Cardinal.lift.{w'} (#s) ≤ Cardinal.lift.{w} κ)
+ (h2 : Cardinal.lift.{w'} #s ≤ Cardinal.lift.{w} κ)
(h3 : Cardinal.lift.{w'} L.card ≤ Cardinal.lift.{max u v} κ)
- (h4 : Cardinal.lift.{w} κ ≤ Cardinal.lift.{w'} (#M)) :
- ∃ S : L.ElementarySubstructure M, s ⊆ S ∧ Cardinal.lift.{w'} (#S) = Cardinal.lift.{w} κ := by
+ (h4 : Cardinal.lift.{w} κ ≤ Cardinal.lift.{w'} #M) :
+ ∃ S : L.ElementarySubstructure M, s ⊆ S ∧ Cardinal.lift.{w'} #S = Cardinal.lift.{w} κ := by
obtain ⟨s', hs'⟩ := Cardinal.le_mk_iff_exists_set.1 h4
rw [← aleph0_le_lift.{_, w}] at h1
rw [← hs'] at h1 h2 ⊢
Cardinal.lift_le
and Cardinal.lift_mk_le
(#5325)
Cardinal.lift_le
and Cardinal.lift_mk_le
have their universes out of order, in the sense that persistently through the rest of the library we need to specify the 2nd universe (resp 3rd), while the others are solved by unification.
This PR reorders the universes so it's easier to specify the thing you need to specify!
(This PR doesn't get rid of all the occurrences of \.\{_,
in the library, but I'd like to do that later.)
I do have a hidden agenda here, which is that I've been experimenting with solutions to the dreaded "Can't solve max u v = max v ?u
" universe unification issue (which is making life hellish forward porting https://github.com/leanprover-community/mathlib/pull/19153), and my favourite (but still hacky) solution doesn't like some of the occasions where we reference a lemma filling in some of its universe arguments with _
but then fully specify a later one. (e.g. rw [← lift_le.{_, max u v}, lift_lift, lift_mk_le.{_, _, v}]
in ModelTheory/Skolem.lean
). Hence the cleanup proposed in this PR makes my life easier working on these experiments. :-)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -56,7 +56,7 @@ theorem card_functions_sum_skolem₁ :
conv_lhs => enter [2, 1, i]; rw [lift_id'.{u, v}]
rw [add_comm, add_eq_max, max_eq_left]
· refine' sum_le_sum _ _ fun n => _
- rw [← lift_le.{_, max u v}, lift_lift, lift_mk_le.{_, _, v}]
+ rw [← lift_le.{_, max u v}, lift_lift, lift_mk_le.{v}]
refine' ⟨⟨fun f => (func f default).bdEqual (func f default), fun f g h => _⟩⟩
rcases h with ⟨rfl, ⟨rfl⟩⟩
rfl
@@ -71,7 +71,7 @@ theorem card_functions_sum_skolem₁_le : (#Σn, (L.sum L.skolem₁).Functions n
· exact
⟨⟨Sigma.map Nat.succ fun _ => id,
Nat.succ_injective.sigma_map fun _ => Function.injective_id⟩⟩
- · refine' _root_.trans BoundedFormula.card_le (lift_le.{_, max u v}.1 _)
+ · refine' _root_.trans BoundedFormula.card_le (lift_le.{max u v}.1 _)
simp only [mk_empty, lift_zero, lift_uzero, zero_add]
rfl
#align first_order.language.card_functions_sum_skolem₁_le FirstOrder.Language.card_functions_sum_skolem₁_le
@@ -152,11 +152,11 @@ theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (
refine' ⟨h1, (mk_union_le _ _).trans _, (lift_le.2 card_functions_sum_skolem₁_le).trans _⟩
· rw [← lift_le, lift_add, h, add_comm, add_eq_max h1]
exact max_le le_rfl h2
- · rw [lift_max, lift_aleph0, max_le_iff, aleph0_le_lift, and_comm, ← lift_le.{_, w'},
+ · rw [lift_max, lift_aleph0, max_le_iff, aleph0_le_lift, and_comm, ← lift_le.{w'},
lift_lift, lift_lift, ← aleph0_le_lift, h]
refine' ⟨_, h1⟩
rw [← lift_lift.{w', w}]
- refine' _root_.trans (lift_le.{_, w}.2 h3) _
+ refine' _root_.trans (lift_le.{w}.2 h3) _
rw [lift_lift, ← lift_lift.{w, max u v}, ← hs', ← h, lift_lift]
· refine' _root_.trans _ (lift_le.2 (mk_le_mk_of_subset (Set.subset_union_right _ _)))
rw [aleph0_le_lift, ← aleph0_le_lift, h]
The unported dependencies are