Stream: Archive Mirror: Isabelle Users Mailing List

Topic: [isabelle] mutually recursion problem


view this post on Zulip Email Gateway (Aug 18 2022 at 17:54):

From: Данијела Петровић <danijela.p9@gmail.com>
Dear Sir/Madam,

I am having problem in proving this lemma:

lemma coords_mono_point_poly:
"point_coords state \<subseteq>\<^sub>m point_coords (fst (point_poly p
state)) \<and>
line_coords state \<subseteq>\<^sub>m line_coords (fst (point_poly p
state))"
and
coords_mono_line_poly:
"point_coords state \<subseteq>\<^sub>m point_coords (fst (line_poly l
state)) \<and>
line_coords state \<subseteq>\<^sub>m line_coords (fst (line_poly l
state))"
proof (induct p and l arbitrary: state)

As you can see there are actually two lemmas, but they are "mutually
recursive" (because the functions point_poly and line_poly that I previously
defined are mutually recursive). The problem is that when i try to prove
like this, then this 'arbitrary:state' only affects the first lemma, but not
the second one, and that is not convenient at all. Any suggestions how to
solve this?

Yours faithfully,
Danijela Petrovic

view this post on Zulip Email Gateway (Aug 18 2022 at 18:00):

From: Lars Noschinski <noschinl@in.tum.de>
You probably need to give arbitrary a list for each of the goals,
separated by "and": So try using "arbitrary: state and state".

-- Lars


Last updated: Mar 29 2024 at 04:18 UTC