У меня есть сценарий, в котором я хочу доказать лемму, включающую ряд строковых и списковых переменных. Возможно, для этого нужна «индукция», но может ли кто-нибудь помочь мне в доказательстве приведенной ниже леммы. Если нужен остальной код, я могу предоставить и его.
Definition DLVRI (IA IT : string)
(FA ICL FCL IUL FUL FTL : strlist) : bool :=
match (TestA IA FA),
(TestC ICL FCL),
(TestD IT IUL FUL FTL) with
| true, true, true => true
| _ , _ , _ => false
end.
(**
Lemma TestDL : forall (IA IT : string),
forall (FA ICL FCL IUL FUL FTL : strlist),
(TestA IA FA) = true /\
(TestC ICL FCL) = true /\
(TestD IT IUL FUL FTL) = true.
Proof.
*)
(* OR *)
Lemma TestDL : forall (IA IT : string),
forall (FA ICL FCL IUL FUL FTL : strlist),
(TestA IA FA) = true /\
(TestC ICL FCL) = true /\
(TestD IT IUL FUL FTL) = true
-> DLVRI IA IT FA ICL FCL IUL FUL FTL = true.