(**************************************************************)
(*   Copyright Dominique Larchey-Wendling [*]                 *)
(*                                                            *)
(*                             [*] Affiliation LORIA -- CNRS  *)
(**************************************************************)
(*      This file is distributed under the terms of the       *)
(*         CeCILL v2 FREE SOFTWARE LICENSE AGREEMENT          *)
(**************************************************************)
From Undecidability.PCP Require Import PCP.
From Undecidability.Shared.Libs.DLW.Utils
From Undecidability.Shared.Libs.DLW.Vec
From Undecidability.TRAKHTENBROT
fo_sig fo_terms fo_logic fo_sat
Sig_discrete              (* UTILITY: discrete <-> non discrete *)
Sig_noeq                  (* UTILITY: from interpreted to uninterpreted *)
.
Set Implicit Arguments.
(* * Common Tools for reductions *)
(* Inductively defined Boolean PCP as defined in PCP/PCP.v is equivalent to BPCP_problem here *)
(* The reduction from BPCP as defined in Problems/PCP.v and BPCP_problem as defined in ./bpcp.v *)
(* From a given (arbitrary) signature, the reduction from - finite and decidable SAT - to finite and decidable and discrete SAT  SAT(Σ,𝔽,𝔻) <--->  SAT(Σ,𝔽,ℂ,𝔻)  The reduction is the identity here !! *)
Definition FSAT := @fo_form_fin_dec_SAT.
Arguments FSAT : clear implicits.
(* Check fo_form_fin_dec_SAT_discr_equiv. Print Assumptions fo_form_fin_dec_SAT_discr_equiv. *)

Corollary FIN_DEC_SAT_FIN_DISCR_DEC_SAT Σ : FSAT Σ ⪯ᵢ @fo_form_fin_discr_dec_SAT Σ.