You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bottom-up conjecturing or goal-oriented conjecturing?
Both: bidirectional conjecturing.
structural proofs or backwards proofs?
- Both: structural proofs for bottom-up conjecturing and backwards proofs for goal-oriented conjecturing.
- Note that it would involve too many engineering efforts to produce structural proofs for goal-oriented conjecturing.
- Not really structural proofs. We only want to provide "lemma ... apply ... by ...".
- [ ] define a new command "prove" that would replace "lemma" and "theorem". This would save me from purely engineering efforts that are not scientifically important.
We do not handle functions with n-arity where n is greater than 2 for now.
Maybe one bottom-up conjecture helps us prove another bottom-up conjecture. So, we need to iterate. (Prod/TIP_prop_09.thy drop_succ uses drop_nil.)
Maybe one bottom-up conjecture needs a top-down conjecture to be proved. But they sometimes do not sit well with the abductive reasoning framework. (Prod/TIP_prop_09.thy drop_comm uses drop_succ. But this is not an ab)
what to conjecture in top-down approach
compound-term generalisation (abductive)
extension (abductive)
specialisation (abductive)
function application to variables of the same type on both sides of the equation. (top-down, not abductive, only for unary functions)
Should I apply goal-oriented conjecturing only to the original goal? Should I apply it to sub-goals as well?
Only to the original goals for now.
The text was updated successfully, but these errors were encountered:
datatype nat = zero ("0") | Suc nat
primrec plus:: "nat ⇒ nat ⇒ nat" where
"plus zero y = y"
| "plus (Suc x) y = Suc (plus x y)"
lemma 4: "plus x (plus x x) = plus (plus x x) x"
(*try_hard fails*)
apply(subgoal_tac "⋀x y. plus x (plus y y) = plus (plus x y) y")
apply fastforce
apply(induct_tac x)
apply auto
done
Both: bidirectional conjecturing.
- Both: structural proofs for bottom-up conjecturing and backwards proofs for goal-oriented conjecturing.
- Note that it would involve too many engineering efforts to produce structural proofs for goal-oriented conjecturing.
- Not really structural proofs. We only want to provide "lemma ... apply ... by ...".
- [ ] define a new command "prove" that would replace "lemma" and "theorem". This would save me from purely engineering efforts that are not scientifically important.
Prod/TIP_prop_09.thy drop_succ
usesdrop_nil
.)Prod/TIP_prop_09.thy drop_comm
usesdrop_succ
. But this is not an ab)The text was updated successfully, but these errors were encountered: