Want to take part in these discussions? Sign in if you have an account, or apply for one below
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
Is there anything one can say type-theoretically about the use of WLOG in a proof? Some uses of it seem to involve a symmetric situation where a proof for one choice can be converted into a proof for any.
Some thoughts in the context of automated proof:
He mentions Klein’s Erlanger Program. I wonder if there’s scope for working in some group invariant context.
Here are some simple comments in that direction: We fix a group with delooping . We have a domain and a property . Since is connected, the map
is an equivalence. This type on the left is equivalent to (where I reuse the name for the uncurried function), and (since is proposition-valued) to , where is the extension of to the orbit set .
Now, the WLOG situation arises when we have a predicate that describes a “fundamental region” of the domain, so that we have an equivalence . Then the original universal quantification (the type on the right above) is equivalent to
So the witness is the one we get “WLOG.”
For example, in the case that the action of on is transitive, the orbit set is contractible, and we can take , i.e., WLOG is just .
This is closely related to your, David’s, thoughts on formalizing “the”. If we may assume without lack of generality that we are dealing with , then is “the” element/term of .
Except now we may not have , just . More generally, one could have side conditions that trim down to a connected component (for instance an orbit in an action groupoid) and then use WLOG.
Another way to think about WLOG is in terms of “normal forms”, which is when the projection from a sigma type is a section with retraction . The first component of normalizes , and the second component witnesses that is normal/: . The section-retraction property implies that is the identity on normal elements: .
Let . Then, if we have a map , then to show it suffices (WLOG) to show . Because, given we have and hence we know , and thus from our map .
From this point of view, there’s no group involved, just an equivalence relation that respects and a way to pick canonical representatives. The equivalence relation could of course be “ and are in the same orbit”.
Re #4, yes it certainly feels like a ’dependent generalized the’ in a group context.
Re #3, looks interesting, Ulrik. What does that notation, , denote? It’s not used at infinity-action, where we see things like .
Re #7, perhaps I should have explained, sorry. It’s just application, but I like to write instead of for to denote the twist of the underlying type by a -torsor . And should really be , i.e., the untwisted version. (I’ll edit that.) Then we can, by convention, leave out the superscript for the untwisted type when a type is wanted.
Relevant interesting quote from Terry Tao here:
At a more trivial (but still widely used) level, if there is so much invariance with respect to a parameter that the truth value of a given property does not actually depend on the choice of parameter, then the worst, average, and best case results are equivalent, so one can reduce the worst case to the best case (such arguments are generally described as “without loss of generality” reductions).
This is in the context of a qualitative breakdown of proofs, partial or otherwise, of results in his area into worst case, average case and best case (in that order, going from strongest proof to weakest proof)
The mathlib project uses the Lean theorem prover which has a Coq-like tactic language, and they’ve defined a wlog
tactic. This might be a bit too technical or Lean-specific for unfamiliar readers, but hopefully the documentation is generally readable, particularly the example.
E.g. to prove p n m
you are allowed to assume an extra hypothesis n <= m
if you prove it always holds in at least one direction and you prove that p n m
and m <= n
imply p m n
(i.e. p
doesn’t care about the ordering).
Essentially you establish a lemma f : ∀ (n m : nat) (h : n <= m) -> p n m
in the main flow of your proof, with an implied parenthetical that if m
is actually the smaller value with proof h : m <= n
, you just invoke f m n h
which has the type p m n
, and then swap it to p n m
. The wlog
principle then lets you simply conclude ∀ (n m : nat) -> p n m
without the extra hypothesis.
So I think WLOG (at least in this sense) has a lot to do with symmetry as mentioned in #1, because it only works for predicates p
where you can prove that the above swapping works. (Of course, the mathlib definition generalizes beyond arity 2, so it’s not just symmetry, but any permutation of the variables passed to the predicate.)
1 to 10 of 10