Determine if a coin system is Canonical The Cashier's Algorithm is an algorithm for making change in the minimal number of coins that works quite well for most currency systems.  However like most greedy algorithms it is not without its flaws.  If a currency system is set up just right (or just wrong) there are certain values in which the Cashier's Algorithm will fail to find the optimal change.
Take the following example:
We have 4¢, 3¢, and 1¢ coins.  We want to make 6¢.
The Cashier's Algorithm will first select as many of the largest coin (one 4¢ to start) and subtract and repeat.  This will result in one 4¢ coin and two 1¢ coins, for a total of 3 coins.
Unfortunately for the Algorithm there is a way to make 6¢ with only two coins (two 3¢ coins).
A system of change will be considered canonical iff for all integer values the Cashier's Algorithm will find the optimal number of coins.
Task
You task will be to take a system as a either an unordered container or sorted ordered container of integers representing coin values and output a truthy value if the system input is canonical and falsy otherwise.
Your program should work for all systems that can create any value.  (i.e. all systems will have a 1¢ coin)
This is code golf least bytes wins.
Test cases
This list is by no means exhaustive, your program should work for all valid input
1, 3, 4       -&gt; 0
1, 5, 10, 25  -&gt; 1
1, 6, 10, 25  -&gt; 0
1, 2, 3       -&gt; 1
1, 8, 17, 30  -&gt; 0
1, 3, 8, 12   -&gt; 0
1, 2, 8, 13   -&gt; 0
1, 2, 4, 6, 8 -&gt; 1
Haskell, 94 87 82 bytes
f s=and[j i-2&lt;j(i-x)|let j i=last$0:[1+j(i-x)|x&lt;-s,x&lt;i],i&lt;-[1..2*last s],x&lt;-s,x&lt;i]

this solution works by defining a function j which perform's the cashier's algorithm and tells us how many coins the cashier used. we then check up to twice the biggest number in the list, assuming that the system has been canonical for all previous numbers, that taking the biggest possible coin is the right choice.
this solution assumes the input is sorted.
proof checking up to twice the biggest number is enough:
assume that the system is not canonical for some number i, and let k be the biggest number in the list not bigger than i. assume that i &gt;= 2k and the system is canonical for all numbers less than i.
take some optimal way to make i out of coins, and assume it doesn't contain the coin k. if we throw away one of the coins, the new sum of coins must be bigger than k and smaller than i - but the cashier's algorithm on this number would use the k coin - and therefore, this set of coins can be replaced with an equal set of coins containing the coin k, and therefore there is a set of coins containing the coin k for the number i, and by induction the cashier's algorithm returns the optimal choice.
this argument really shows that we only need to check until the sum of the two biggest elements - but it is lengthier to do so.
Edit: five bytes off thanks to Ørjan Johansen!