I'm trying to do some proofs manually in Isabelle but I'm struggling with the following proof:
lemma "(A ∩ B) ∪ C ⊆ A ∪ C "
I'm trying to transform it Propositional Logic then prove it.
So here's what I tried:
lemma "(A ∩ B) ∪ C ⊆ A ∪ C "
apply (subst subset_iff)+
apply(rule allI)
apply (rule impI)
(*here normally we should try to get rid of Union and Inter*)
apply(subst Un_iff)+
apply(subst (asm) Un_iff)+
apply(subst Inter_iff) (*not working*)
I'm stuck at the last step, could someone please help me finish this proof and explain how should one find the right theorems till the end?
I use find_theorems, but it takes a lot of time + the only useful (and understandable) ressource I found so far is this link: https://www.inf.ed.ac.uk/teaching/courses/ar/isabelle/FormalCheatSheet.pdf and some very few random lecture notes containing almost the same content as the link above...
Other resources I found are 100+ pages and do not look like a place to start for a beginner...
Thanks in advance
by blast
(one step). Anyway, isabelle.in.tum.de/dist/Isabelle2020/doc/tutorial.pdf, Section 5 documents this kind of proofs. – Mathias FleuryInt_iff
tip that I needed, thanks a lot! – user206904subst
,rule
, etc. as a first step and then hit all the arising subgoals with automation likeauto
. That is more typical of the style we use these days. And of course structured Isar proofs. But I'm sure your course will get there. – Manuel Eberl