use crate::ast::{VerifyBlock, VerifyLaw};
use crate::codegen::CodegenContext;
use super::super::super::expr::aver_name_to_lean;
use super::super::AutoProof;
pub(in super::super) fn emit_match_dispatcher_fold_law(
_vb: &VerifyBlock,
_law: &VerifyLaw,
_ctx: &CodegenContext,
fold_fn: &str,
spec_fn: &str,
) -> Option<AutoProof> {
let fold_l = aver_name_to_lean(fold_fn);
let spec_l = aver_name_to_lean(spec_fn);
let proof_lines = vec![
" intro xs".to_string(),
" induction xs with".to_string(),
format!(" | nil => simp [{fold_l}, {spec_l}]"),
format!(" | cons h t ih => simp [{fold_l}, {spec_l}]; omega"),
];
Some(AutoProof {
support_lines: Vec::new(),
proof_lines,
replaces_theorem: false,
})
}