{-# OPTIONS --cubical --no-import-sorts --allow-unsolved-metas #-} module AFF2024.AlgebraicSets.DiscriminatingFunctions where open import Cubical.Foundations.Prelude open import Cubical.Foundations.Powerset open import Cubical.Algebra.CommRing open import Cubical.Data.Sigma open import Cubical.HITs.PropositionalTruncation.Monad open import Cubical.Data.Nat open import Cubical.Data.List open import Cubical.Relation.Nullary open import AFF2024.Basics open import AFF2024.Algebra.Basics import AFF2024.AlgebraicSets.Basics module _ {ℓ : Level} (R…@(R , Rstr) : CommRing ℓ) (is-field : IsField R…) where open AFF2024.AlgebraicSets.Basics R… open CommRingStr Rstr module _ {n : ℕ} (M : ℙ (𝔸 n)) (is-algebraic : IsAlgebraic M) where module _ (p : 𝔸 n) (p∉M : ¬ (p ∈ M)) where part-a : ∃[ f ∈ MultivariatePoly R… n ] ((f ∈ Idl M) × (evalT f p ≡ 1r)) part-a = do (fs , eq) ← is-algebraic {!!} part-a' : (fs : List (MultivariatePoly R… n)) → ¬ (p ∈ V fs) → ∃[ f ∈ MultivariatePoly R… n ] ((f ∈ Idl {n = n} (V fs)) × (evalT f p ≡ 1r)) part-a' fs q = do found ← is-field (map (λ f → evalT f p) fs) (λ rs → {!!}) {!!}