Hint Resolve meet_hom.

(* Specifications: *)
Lemma meetkl0 n k1 k2 x : hom n k1 x -> n <> k1 -> [k2] ∧ x = 0.
Lemma meetkl n k x : hom n n x -> [k] ∧ x = [k * 'dC[x]].
Lemma meetkr0 n k1 k2 x : hom n k1 x -> n <> k1 -> x ∧ [k2] = 0.
Lemma meetkr n k x : hom n n x -> x ∧ [k] = ['dC[x] * k].
Lemma meet_hom_com n k1 k2 (x y : vect n) :
hom n k1 x ->
hom n k2 y -> y ∧ x = ((- (1))^((n + k1) * (n + k2))).* (x ∧ y).
Lemma meet_hom_id n k x : hom n k x -> odd (n - k) ->  x ∧ x = 0.
Lemma dual_join_compl n k v :
In v (base n k) -> (v ∨ '@v = all n) \/ v ∨ '@v = (-(1)) .*  all n.
Lemma join01E n x y : hom n 1 x -> hom n 1 y ->
x ∨ y = 0 -> exists k, x = k .* y \/ y = k .* x.
Lemma homn_1 n k1 k2 x y :
hom n k1 x -> hom n k2 y -> n = (k1 + k2)%nat -> x ∧ y = 'dC[x ∨ y] .* 1.
(* One theorem of white  WHITE 1997 p882 and Barnabei Brini Rota p135 *)
Lemma join2_meetE n k1 k2 (x y : vect n) :
hom n k1 x -> hom n k2 y -> n <= k1 + k2 ->  x ∨ y = (x ∧ y) ∨ E.
(* Barnabei Brini Rota p136 *)
Lemma join_meet_swap n k1 k2 k3 (x y z : vect n) :
hom n k1 x -> hom n k2 y ->  hom n k3 z -> (k1 + k2 + k3 = n)%nat ->
x ∧ (y ∨ z) = (x ∨ y) ∧ z.
(* Barnabei Brini Rota p136 *)
Lemma join3_meetE n k1 k2 (x y z : vect n) :
hom n n x -> hom n k1 y -> hom n k2 z ->  n <= k1 + k2 ->
x ∧ (y ∨ z) = (x ∧ y ∧ z) ∨ E.
Lemma splitlr n k1 k2 x y z : hom n k1 x -> hom n 1 y ->  hom n k2 z ->
(x ∨ y) ∧ z = (-(1))^(n + (k1 + k2).+1) .* (x ∧ (y ∨ z)) +
(x ∧ z) ∨ y.
Lemma splitll n k1 k2 x y z : hom n k1 x -> hom n 1 y ->  hom n k2 z ->
(y ∨ x) ∧ z = (-(1))^(n + k2.+1) .* ((x ∧ (y ∨ z)) - y ∨ (x ∧ z)).
Lemma splitrr n k1 k2 x y z : hom n k1 x -> hom n 1 y ->  hom n k2 z ->
z ∧ (x ∨ y) = (-(1))^(n + k2.+1) .* ((z ∨ y) ∧ x - (z ∧ x) ∨ y).
Lemma splitrl n k1 k2 x y z : hom n k1 x -> hom n 1 y ->  hom n k2 z ->
z ∧ (y ∨ x) = (-(1))^(n + (k1 + k2).+1) .* (z ∨ y) ∧ x + y ∨ (z ∧ x).
Lemma inter n k1 k2 x y z : hom n 1 x -> hom n k1 y ->  hom n k2 z ->
x ∨ y = 0 -> x ∨ z = 0 -> x ∨ (y ∧ z) = 0.
Lemma join_meet_distrl n k1 k2 x y z :
hom n k1 x -> hom n 1 y ->  hom n k2 z ->
y ∨ (x ∧ z) = (-(1))^(n + k2) .* ((y ∨ x) ∧ z)  +  x ∧ (y ∨ z).
Lemma meet_join_distrl n k1 k2 x y z :
hom n k1 x -> hom n 1 y ->  hom n k2 z ->
'@y ∧ (x ∨ z) = (-(1))^k2 .* (('@y ∧ x) ∨ z)  +  x ∨ ('@y ∧ z).
Lemma grade_dual n k x : k < n -> grade n k x -> grade n (n - k) '@x.
assert (dual_aux: forall n x l, hom n 1 x -> is_vector_space n l ->
(forall y, In y l -> '@x ∧ y = 0) -> '@x ∧ joinl n l = 0).