I have a different groups of natural numbers(sn1 ,sn2… snn).
I pass/give this group to a function ,which convert this group to a list.I want to prove these lists are disjoint.I have defined theorems about disjoint list.But I have a problem in proving lemma. . 1. Are basic theorems about disjoint lists are sufficient to prove the required lemma? 2. I have to add some basic theorems about disjoint sets?
Lemma mutualexc: forall (sn1 sn2 bmax snmax:nat),
let g1 := group sn1 bmax snmax in
let g2 := group sn2 bmax snmax in
let list1 := f (fst(g1)) (snd(g1)) ((snd(g1)) - (fst(g1))) in
let list2 := f (fst(g2)) (snd(g2)) ((snd(g2)) - (fst(g2))) in
sn1 <> sn2 -> disjoint list1 list2.
intros. induction list1 as [|t l1] .
apply disjoint_nil_l. apply disjoint_cons_l.
unfold disjoint .
unfold disjoint.`