let rec eq_data d1 d2 = 
    let eq_exp = Fol.eq_term eq_data in
    let rec eq d1 d2 = match d1, d2 with
    | E0addr v1, E0addr v2 -> v1.Cil_types.lv_id = v2.Cil_types.lv_id
    | E0addr _, _ -> false
    | E0proj (e1, ch1), E0proj (e2, ch2) ->
        eq_exp e1 e2 && WpFol.eq_epath eq_exp ch1 ch2
    | E0proj _, _ -> false
    | E0depl (e1, ch1), E0depl (e2, ch2) ->
        eq_exp e1 e2 && WpFol.eq_epath eq_exp ch1 ch2
    | E0depl _, _ -> false
    | E0shift (e1, i1), E0shift (e2, i2) ->
        eq_exp e1 e2 && eq_exp i1 i2
    | E0shift _, _ -> false
    | E0mu (e1, ch1, x1), E0mu (e2, ch2, x2) ->
        eq_exp e1 e2 && WpFol.eq_epath eq_exp ch1 ch2 && eq_exp x1 x2
    | E0mu _, _ -> false
    in eq d1 d2