1-- Algebraic closedness as the usual monic-polynomial root property.2-- Part of Cumulus, the Grace17 mathematics library.3-- Copyright (c) 2026 Grant Passmore.4-- Released under the Apache License 2.0. See LICENSE in the repository root.5-- Authors: Grant Passmore67module Grace.Cumulus.Algebra.Field.AlgebraicClosure8import Algebraic910-- A coefficient list of length n represents a monic polynomial of degree n.11-- The empty list represents 1 and is excluded from the root requirement.12predicate IsAlgebraicallyClosed (A add zero neg mul one : Set) :=13 IsField(A, add, zero, neg, mul, one) ∧14 (∀ cs, List(A, cs) → cs ≠ [] →∃ x ∈ A, monicValue{A}(identity(A), add, mul, one, x, cs) = zero)1516notationscoped IsAlgebraicallyClosed(R) => IsAlgebraicallyClosed(R.carrier, R.add, R.zero, R.neg, R.mul, R.one)1718theorem IsAlgebraicallyClosed.field (A add zero neg mul one : Set)19requires closed : IsAlgebraicallyClosed(A, add, zero, neg, mul, one)20shows IsField(A, add, zero, neg, mul, one)21proof22exact closed.left2324theorem IsAlgebraicallyClosed.root (A add zero neg mul one : Set) (cs : List(A))25requires closed : IsAlgebraicallyClosed(A, add, zero, neg, mul, one)26requires nonconstant : cs ≠ []27shows∃ x ∈ A, monicValue{A}(identity(A), add, mul, one, x, cs) = zero28proof29exact closed.right with cs, nonconstant30