Theory Abs_SAIS_Verification
theory Abs_SAIS_Verification
imports Abs_SAIS_Verification_With_Valid_Precondition
begin
section "Final Theorem: Verification of a generalised SAIS construction algorithm"
text "The {@term ‹abs_sais›} implementation produces an output that is equivalent to that of a
suffix array construction algorithm for lists of any type that can be linearly
ordered. This lifts the restriction that the algorithm only operates on natural
numbers terminated by a bottom element."
interpretation abs_sais_gen: Suffix_Array_General "sa_nat_wrapper map_to_nat abs_sais"
by (simp add: Suffix_Array_Restricted_imp_General abs_sais.Suffix_Array_Restricted_axioms)
theorem abs_sais_gen_is_Suffix_Array_General:
"Suffix_Array_General sa ⟷ sa = sa_nat_wrapper map_to_nat abs_sais"
using Suffix_Array_General_determinism abs_sais_gen.Suffix_Array_General_axioms by auto
end