Here is one (non-constructive) proof of the compactness theorem for propositional calculus. I've seen constructive versions of this proof before, but they're boring and... constructive. And longer. I love Zorn's lemma too much for my own good.
First, some foundational work. A propositional calculus language contains an indefinite number of variables (named vn, indexed by natural numbers) along with the connectives ¬ (negation) and ∧ (conjunction). The familiar connectives of propositional calculus can be built from these two alone.
A model in propositional calculus can be a sequence an that assigns a truth value to each variable vn. A set of propositions is said to be satisfiable (or sat.) of such an assignment exists that makes each proposition true. If every finite set of a set of propositions is satisfiable, the whole set is said to be finitely satisfiable (or, for brevity's sake, fin. sat)
The compactness theorem says that a set of propositions Φ is sat. iff it is fin. sat.. Let's begin.
If Φ is sat., then it must be fin. sat. as well, trivially. If a finite piece of Φ didn't accept an assignment, then all of Φ wouldn't accept an assignment either.
Secondly, assume Φ is fin. sat. Let vn be the (possibly infinite) set of all the variables mentioned in Φ. Establish the following partial order on sets of propositions over vn:
α ≤ β iff α ⊆ β and α and β are fin. sat.
There are a couple issues with establishing this partial order, but these can be resolved. Let λ be the set of all propositions in vn variables; this set is countably infinite since godel numbering puts it in one-to-one coorespondence with an infinite subset of the natural numbers.
Let α be a subset of λ and A be any proposition from λ such that A and ¬A aren't in α. Now, assume that both α ∪ A and α ∪ ¬A are not fin. sat. But the first condition means α can deduce ¬A, and the second means α can deduce A, so α alone can deduce A ∧ ¬A, meaning it is not fin. sat. as was assumed. This proves by contradiction that one of either α ∪ A or α ∪ ¬A is fin. sat. (but not both, obviously!)
This demonstrates that our partial order isn't empty. With the partial order, we can construct many chains of the form:
Φ ≤ ψ1 ≤ ψ2 ≤ ... ≤ ψk
For each chain, ψk is an upper bound, so by Zorn's lemma there exists a maximal, fin. sat. set of propositions, which I'll call λ'. λ' is complete, because otherwise there would be a proposition P such that either P or ¬P wasn't in λ'. From our construction of λ', we know that either λ'∪P or λ'∪(¬P) is fin.sat., and whichever one is fin.sat. is also "greater than but not equal to" λ' under the partial order — a contradiction.
From this we can define the following assignment:
an = true if vn is in λ', false otherwise.
This is possible because λ', being complete, contains the one of 'vn' or '¬vn' for every variable mentioned in φ. This is why we proved the existence of λ', because we weren't assured that any sentence of the form 'vn' were contained in Φ. In any case, since λ' also includes Φ, this assignment will satisfy Φ! That is, Φ is sat.!
This proves the compactness theorem in propositional calculus. •