I have proven this simp rule:
lemma AAA: the_sector (log_update ?f ?s) ?p = the_sector ?s ?p
The rule is not used to simplify the following:
lemma BBB: "(λA. if A then (the_sector (log_update f s) p) else B)
=
(λA. if A then (the_sector s p) else B)"
I know that I can apply auto or (rule ext) followed by simp to prove this lemma, but my ultimate goal is something much nastier than a function equality. I believe the sticking point is the use of a function variable A in the if condition. I would like to understand why simp does not simplify a term in this case.
The following illustrate why I believe this to be the sticking point (both are proven):
lemma CCC: "(λf s p. the_sector (log_update f s) p) = (λf s p. the_sector s p)"
by simp
lemma DDD: "(if A then (the_sector (log_update f s) p) else B)
=
(if A then (the_sector s p) else B)"
by simp
Thanks for any advice.