Operator Precedence/Boolean Logic
rustompmody at gmail.com
Thu Jun 30 12:01:34 EDT 2016
On Thursday, June 30, 2016 at 5:10:41 AM UTC+5:30, Steven D'Aprano wrote:
> On Wed, 29 Jun 2016 11:30 pm, Rustom Mody wrote:
> > The other answers -- graphs and automata -- are questionable and/or wrong
> > You may wish to think about them again?
> You may wish to justify your assertion.
> Rusi wrote
> > Please show me how we would define __bool__ for
> > 1. Graphs -- the kind mathematicians define with "Let G =(V,E) be a
> > graph..."
> I would make the empty graph (zero nodes) falsey, and non-empty graphs (one
> or more nodes) truthy.
> 2. Automata which in a way are special kinds of graphs
A deterministic finite state machine (acceptor) is a quintuple
(Σ, S, δ, s₀, F), where:
Σ is the input alphabet (a finite, non-empty set of symbols).
S is a finite, non-empty set of states.
δ is the state-transition function: δ : S × Σ → S
s₀ is an initial state, an element of S.
F is the set of final states, a (possibly empty) subset of S.
Put in more succinct form:
If we take Σ (alphabet) and S (state-set) as given (ie independent) types
we can specify the dependence of s₀ δ and F as the following type_signature:
dfa(Σ, S) = s₀ : S
δ : S × Σ → S
F : ℘ S
Since s₀ : S is part of the dfa spec, S cant be empty
Can Σ (alphabet) be empty??
I'm not clear on that one...
More information about the Python-list