A ≤ₘ B iff A is many-one reducible to B.
Equations
- «term_≤ₘ_» = Lean.ParserDescr.trailingNode `«term_≤ₘ_» 50 51 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≤ₘ ") (Lean.ParserDescr.cat `term 51))
Instances For
A ≡ₘ B iff A is many-one equivalent to B.
Equations
- «term_≡ₘ_» = Lean.ParserDescr.trailingNode `«term_≡ₘ_» 50 51 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≡ₘ ") (Lean.ParserDescr.cat `term 51))
Instances For
To do calc proofs with m-reducibility we create a Trans instance.
Equations
- instTransForallNatBoolM_reducible = { trans := ⋯ }
Equivalent reals have equal upper cones.
Equivalent reals have equal degrees.
m-reducibility is a preorder.
Equations
- m_degrees_preorder = { le := m_reducible, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
Instances For
For example 𝓓₁ is a partial order (if not a semilattice).
Equations
- instPartialOrder𝓓 = { le := le_m, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯, le_antisymm := ⋯ }
Make sure ♯ binds stronger than ≤ₘ.
Equations
- «term_⊕__1» = Lean.ParserDescr.trailingNode `«term_⊕__1» 70 71 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊕ ") (Lean.ParserDescr.cat `term 71))
Instances For
Swapping ∅ and ℕ is surjective on 𝓓ₘ.
An automorphism of a partial order is a bijection that preserves and reflects the order.
Equations
- automorphism π = (Function.Bijective π ∧ ∀ (a b : α), a ≤ b ↔ π a ≤ π b)
Instances For
The complement map on 𝓓ₘ.
Equations
- complementMap = Quotient.lift (fun (A : ℕ → Bool) => ⟦cpl A⟧) ⋯
Instances For
The identity automorphism is induced by a function on ℕ.
The complement automorphism is not induced by a function on ℕ.
A partial order is rigid if there are no nontrivial automorphisms.
Equations
- rigid α = ∀ (π : α → α), automorphism π → π = id
Instances For
An arithmetical characterization of "Even" is primitive recursive.
The usual join of functions on ℕ is computable.
Requirement for a semilattice like 𝓓ₘ.
Instances For
The computable functions satisfy the requirement for a semilattice like 𝓓ₘ.
Equations
- comput = { func := Computable, id := comput._proof_1, comp := @comput._proof_2, inl := comput._proof_3, inr := comput._proof_4, join := ⋯, const := comput._proof_5 }
Instances For
The primitive recursive functions satisfy the requirement for a semilattice like 𝓓ₘ.
Equations
- primrec = { func := Primrec, id := primrec._proof_1, comp := @primrec._proof_2, inl := Primrec.nat_double, inr := Primrec.nat_double_succ, join := ⋯, const := primrec._proof_3 }
Instances For
𝓓ₘ is a join-semilattice.
Equations
- One or more equations did not get rendered due to their size.
The complement map is not the identity map of 𝓓ₘ.
The complement map is a surjective map of 𝓓ₘ.
The complement map is an injective map of 𝓓ₘ.
Complementation is an automorphism not only of the partial order 𝓓ₘ,
but of the preorder m_reducible! (That is true for Turing degrees too.
To rule out that there is an automorphism of the preorder
for Turing degrees that maps something to an element of a different Turing degree
we would have to rule out e.g. a homeomorphism inducing an automorphism.
)
The complement map is an automorphism of 𝓓ₘ.
Over a rich enough monoid, botSwap is an automorphism.
Equations
- is_minimal a = ∀ b ≤ a, b = a
Instances For
The complement of the halting set K is not computable.
If B is computable and A ≤ₘ B then A is computable.
Two m-degrees are automorphic if some automorphism maps one to the other.
Equations
- automorphic a b = ∃ (π : 𝓓 → 𝓓), automorphism π ∧ π a = b
Instances For
Surely this should already exist in Mathlib?
Equations
- automorphic_le a b = ∃ (c : 𝓓), a ≤ c ∧ automorphic b c
Instances For
Equations
- instPreorder𝓓 = { le := automorphic_le, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
is this the same as just automorphic?
Equations
- automorphic_equiv a b = (automorphic_le a b ∧ automorphic_le b a)