coq-club AT inria.fr
Subject: The Coq mailing list
List archive
Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint)
Chronological Thread
- From: mukesh tiwari <mukeshtiwari.iiitm AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint)
- Date: Sat, 2 Sep 2023 09:46:33 +0100
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mukeshtiwari.iiitm AT gmail.com; spf=Pass smtp.mailfrom=mukeshtiwari.iiitm AT gmail.com; spf=None smtp.helo=postmaster AT mail-yw1-f176.google.com
- Ironport-data: A9a23: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
- Ironport-hdrordr: A9a23:KnKZVqFS+VWEo4V9pLqE0ceALOsnbusQ8zAXPiFKOGVom6mj/f xG885rsCMc5AxhOk3I3OrwW5VoIkm8yXcW2/h0AV7KZmCP01dAbrsD0WKI+UyGJ8SRzJ866U 6iScRD4R/LYGSSQfyU3OBwKbgd/OU=
- Ironport-phdr: A9a23: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
- Ironport-sdr: 64f2f676_sTjW33pP/CSANa+0bAkOy0UOixuatMP9N/ErS468d1QuEeS dpF0fESQWkqQ7zuox+2gsVUIzk7c3Owlxm6dxGQ==
Hi Agnishom,
Unfortunately, I don't have a complete solution for your problem because I hit a bug in Coq's implementation so I need to figure out a workaround. I have rewritten your function, which avoids 'Program' and 'Function', and it generates 7 subgoals. If you can write a transparent proof --closed by Defined-- of these 7 subgoals then I believe 'simpl' would work.
Best,
Mukesh
Definition all_parse_trees : list A -> nat -> Regex * nat -> list parse_tree. Proof. intros w start rn. cut (Acc (slexprod _ _ regex_struct lt) rn). intros Hacc. revert start w. (* arugments are chaned a bit *) revert dependent rn. refine (fix Fn rn Hacc {struct Hacc} := _). refine (match rn as rn' return rn = rn' -> _ with | (Epsilon, _) => fun _ _ _ => [parse_epsilon] | (CharClass p, _) => fun Ha start w => match nth_error w start with | Some a => if p a then [parse_charclass] else [] | None => [] end | (r1 · r2, len) => fun Ha start w => Fn (r1, len) _ start w >>= fun t1 => map (fun t2 => parse_concat t1 t2) (Fn (r2, (len - parse_length t1)) _ (start + parse_length t1) w) | (r1 ∪ r2, len) => fun Ha start w => map (fun t => parse_union_l t) (Fn (r1, len) _ start w) ++ map (fun t => parse_union_r t) (Fn (r2, len) _ start w) | ((r *), len) => fun Ha start w => match len with | 0 => [parse_star_nil] | _ => (Fn (r, len) _ start w >>= fun t1 => match parse_length t1 with | 0 => [] | l1 => map (fun t2 => parse_star_cons t1 t2) (Fn (r *, (len - l1)) _ (start + parse_length t1) w) ++ [parse_star_nil] end) end end eq_refl); subst. Guarded. (* The condition holds up to here *) + eapply wf_slexprod. Guarded. (* Error: <in exception printer>: Anomaly "Uncaught exception Not_found." Please report at http://coq.inria.fr/bugs/. <original exception>: Uncaught exception Type_errors.TypeError(_, _). *)
1/7
Acc (slexprod Regex nat regex_struct lt) (r2, len - parse_length t1)
2/7
Acc (slexprod Regex nat regex_struct lt) (r1, len)
3/7
Acc (slexprod Regex nat regex_struct lt) (r1, len)
4/7
Acc (slexprod Regex nat regex_struct lt) (r2, len)
5/7
Acc (slexprod Regex nat regex_struct lt) (r *, len - l1)
6/7
Acc (slexprod Regex nat regex_struct lt) (r, len)
7/7
Acc (slexprod Regex nat regex_struct lt) rn
On Sat, Sep 2, 2023 at 2:27 AM Agnishom Chattopadhyay <agnishom AT cmi.ac.in> wrote:
Hi all;I have a function I am trying to define whose well-foundedness is not obvious. I am trying to do it in two different ways: (1) using Program Fixpoint and (2) using Function. In both cases, I am using the fixannot {wf ...}However,(1) When I try Program Fixpoint, the function can be defined. But it is opaque to `simpl`. How do I get around this? I need to be able to prove things about this function.(2) When I use Function, I am getting a strange error message. The error message is not helpful because it references some variable names which I have not used.Here is the Coq code: https://gist.github.com/Agnishom/1150d29732a6c727396fb6c118dbf375Any help with this would be appreciated. I originally posted this on StackExchange, but I am corssposting here because I think this would be better suited for a threaded discussion rather than a Q/A style one.Thanks!--Agnishom
- [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Agnishom Chattopadhyay, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Wendlasida Ouedraogo, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Castéran Pierre, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Dominique Larchey-Wendling, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Jim Fehrle, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Agnishom Chattopadhyay, 09/03/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Meven Lennon-Bertrand, 09/04/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Jim Fehrle, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), Dominique Larchey-Wendling, 09/02/2023
- Re: [Coq-Club] Non obvious recursion (Issue with Function + Can't unfold Program Fixpoint), mukesh tiwari, 09/02/2023
Archive powered by MHonArc 2.6.19+.