Goal:
  
  A : Type
  H : ReflectEq A
  a1 : A
  l1 : list A
  a2 : A
  l2 : list A
  prefix : list A
  l1' : list A
  l2' : list A
  Heq : split_prefix l1 l2 = (prefix, l1', l2')
  Hind : ∀ l : list A,
           is_prefix l l1
           → is_prefix l l2 → is_prefix l (fst (fst (split_prefix l1 l2)))
  Heq0 : (a1 == a2) = true
  l : list A
  _x_ : list A
  pr1 : is_prefix _x_ l1
  eqa : a1 = a2
  pr2 : is_prefix _x_ l2
  _a_ : list A
  _b_ : list A
  _b1_ : list A
  ============================
   (l1' = _b_
    → l2' = _b1_
      → is_prefix _x_ (fst (fst (_a_, _b_, _b1_))) → is_prefix _x_ _a_)


DEBUG:Going to execute:
<coq-core.plugins.ltac::trivial@0> $1 $2

Goals:

DEBUG:Going to execute:
hnf

Goals:

DEBUG:Going to execute:
intros

Goals:

DEBUG:Going to execute:
solve
[ do
![ solve
 [ trivial | apply : eq_sym ; trivial ]
 | discriminate
 | contradiction
 | Ltac.split ]
| case not_locked_false_eq_true; Ltac.assumption
| match goal with
  | H:¬ _ |- _ => solve [ case H; trivial ]
  end ]