I am currently working through the book Software Foundations. When theorems are defined, I often see chains of implications where I believe conjunctions would make more sense. For example, in defining the pigeonhole principle, the authors write:
Theorem pigeonhole_principle: ∀{X:Type} (l1 l2:list X),
excluded_middle →
(∀x, appears_in x l1 → appears_in x l2) →
length l2 < length l1 →
repeats l1.
This definition would make more sense to me if it looked more like this:
Theorem pigeonhole_principle: ∀{X:Type} (l1 l2:list X),
(excluded_middle /\
(∀x, appears_in x l1 → appears_in x l2) /\
length l2 < length l1) →
repeats l1.
Why is the first version correct? Why wouldn't conjunctions be more appropriate?
That is just an example. More generally, I am asking why conjunctions seem to be shunned in favor of chains of implications in coq.