The catalog's vocabularies, presented #
The vocabularies of the two problems the machine bridge is about, exhibited as
FirstOrder.Language.FinVocabs, and the concrete reading of
DescriptiveComplexity.RE_subset_rePred at them:
DescriptiveComplexity.halt_rePred– the halting problem, as a set of concrete machine instances, is recursively enumerable in Mathlib's sense;DescriptiveComplexity.finsat_rePred– likewise for finite satisfiability.
Both are instances of one theorem and neither needs anything problem-specific beyond listing the symbols of the vocabulary: this is the point of encoding structures once for the catalog rather than once per problem.
Neither statement says undecidable. That reading is supplied one file over,
by DescriptiveComplexity.Computability.CodeHalt: a known-undecidable set –
Mathlib's halting problem – maps computably into concrete instances of
DescriptiveComplexity.CODEHALT, whence
DescriptiveComplexity.finsat_not_computable, Trakhtenbrot's theorem outright.
The hypothetical form kept here,
DescriptiveComplexity.finsat_not_computable_of_halt, routes the same
conclusion through the machine model instead; its hypothesis is supplied by
DescriptiveComplexity.halt_not_computable.
Dependency graph
Dependency graph
The vocabulary of machine instances, presented: twelve symbols, six unary and six binary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The vocabulary of first-order sentences as instances, presented: fourteen symbols of arity at most three.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The halting problem is recursively enumerable in Mathlib's sense, on
the concrete machine instances of FirstOrder.Language.FinStruct.
This is DescriptiveComplexity.halt_mem_RE – a purely logical statement, an
∃SO[new] definition of acceptance – read through the encoding, with no
machine model on either side.
Dependency graph
Finite satisfiability is recursively enumerable in Mathlib's sense: the easy half of Trakhtenbrot's theorem, on concrete instances.
Dependency graph
Trakhtenbrot's theorem, through the halting link: if the halting problem is undecidable as a set of concrete machine instances, then finite satisfiability is undecidable too.
The reduction is DescriptiveComplexity.halt_le_finsat, which exists because
FINSAT is RE-hard and HALT is in RE; that it is a computable many-one
reduction of the induced sets is
DescriptiveComplexity.not_computablePred_of_relOrderedReduction. The
hypothesis is discharged by DescriptiveComplexity.halt_not_computable; the
conditional form is kept because it is Trakhtenbrot's theorem in the shape it
is usually stated – undecidability imported from the halting problem by a
reduction.