Deterministic finite automata (DFAs) are mathematical models of computation that can be used to represent regular languages. A DFA consists of: (1) a finite set of states, (2) a finite input alphabet, (3) a transition function mapping a state and input to another state, (4) a start state, and (5) a set of accepting states. DFAs can be represented visually using state transition diagrams or mathematically as a 5-tuple. Operations like union, intersection, and complement of languages can be modeled using operations like union, product, and complement of DFAs.
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
Integration by substitution is the chain rule in reverse.
NOTE: the final location is section specific. Section 1 (morning) is in SILV 703, Section 11 (afternoon) is in CANT 200
Lesson 8: Derivatives of Polynomials and Exponential functionsMatthew Leingang
Some of the most famous rules of the calculus of derivatives: the power rule, the sum rule, the constant multiple rule, and the number e defined so that e^x is its own derivative!
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...Leo Asselborn
This presentation proposes an approach to algorithmically synthesize control strategies for
set-to-set transitions of uncertain discrete-time switched linear systems based on a combination
of tree search and reachable set computations in a stochastic setting. For given Gaussian
distributions of the initial states and disturbances, state sets wich are reachable to a chosen
confidence level under the effect of time-variant hybrid control laws are computed by using
principles of the ellipsoidal calculus. The proposed algorithm iterates over sequences of the
discrete states and LMI-constrained semi-definite programming (SDP) problems to compute
stabilizing controllers, while polytopic input constraints are considered. An example for illustration is included.
At times it is useful to consider a function whose derivative is a given function. We look at the general idea of reversing the differentiation process and its applications to rectilinear motion.
Integration by substitution is the chain rule in reverse.
NOTE: the final location is section specific. Section 1 (morning) is in SILV 703, Section 11 (afternoon) is in CANT 200
Lesson 8: Derivatives of Polynomials and Exponential functionsMatthew Leingang
Some of the most famous rules of the calculus of derivatives: the power rule, the sum rule, the constant multiple rule, and the number e defined so that e^x is its own derivative!
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...Leo Asselborn
This presentation proposes an approach to algorithmically synthesize control strategies for
set-to-set transitions of uncertain discrete-time switched linear systems based on a combination
of tree search and reachable set computations in a stochastic setting. For given Gaussian
distributions of the initial states and disturbances, state sets wich are reachable to a chosen
confidence level under the effect of time-variant hybrid control laws are computed by using
principles of the ellipsoidal calculus. The proposed algorithm iterates over sequences of the
discrete states and LMI-constrained semi-definite programming (SDP) problems to compute
stabilizing controllers, while polytopic input constraints are considered. An example for illustration is included.
At times it is useful to consider a function whose derivative is a given function. We look at the general idea of reversing the differentiation process and its applications to rectilinear motion.
Minimum mean square error estimation and approximation of the Bayesian updateAlexander Litvinenko
We develop a Bayesian update surrogate. Our formula allows us to update polynomial chaos coefficients. In contrast to classical Bayesian approach, we suggest to update PCE coefficients. We show that classical Kalman filter is a particular case of our update.
I am Bon Leofen Currently associated with economicshomeworkhelper.com as an economics homework helper. After completing my master's at Ambrose University, I was in search of an opportunity that would expand my area of knowledge hence I decided to help students with their assignments. I have written several economics assignments to date to help students overcome numerous difficulties they face.
I am Ben R. I am a Statistics Assignment Expert at statisticshomeworkhelper.com. I hold a Ph.D. in Statistics, from University of Denver, USA. I have been helping students with their homework for the past 5 years. I solve assignments related to Statistics.
Visit statisticshomeworkhelper.com or email info@statisticshomeworkhelper.com.
You can also call on +1 678 648 4277 for any assistance with Statistics Assignment.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Free Complete Python - A step towards Data Science
O2
1. Deterministic Finite Automata
Definition: A deterministic finite automaton (DFA) consists of
1. a finite set of states (often denoted Q)
2. a finite set Σ of symbols (alphabet)
3. a transition function that takes as argument a state and a
symbol and returns a state (often denoted δ)
4. a start state often denoted q0
5. a set of final or accepting states (often denoted F )
We have q0 ∈ Q and F ⊆ Q
1
2. Deterministic Finite Automata
So a DFA is mathematically represented as a 5-uple
(Q, Σ, δ, q0 , F )
The transition function δ is a function in
Q×Σ→Q
Q × Σ is the set of 2-tuples (q, a) with q ∈ Q and a ∈ Σ
2
3. Deterministic Finite Automata
How to present a DFA? With a transition table
0 1
→q0 q2 q0
∗q1 q1 q1
q2 q2 q1
The → indicates the start state: here q0
The ∗ indicates the final state(s) (here only one final state q1 )
This defines the following transition diagram
1 0
0 1
q0 q2 q1 0,1
3
4. Deterministic Finite Automata
For this example
Q = {q0 , q1 , q2 }
start state q0
F = {q1 }
Σ = {0, 1}
δ is a function from Q × Σ to Q
δ :Q×Σ→Q
δ(q0 , 1) = q0
δ(q0 , 0) = q2
4
5. Example: password
When does the automaton accepts a word??
It reads the word and accepts it if it stops in an accepting state
t h e n
q0 q1 q2 q3 q4
=t =h =e
q5 =n
Only the word then is accepted
Here Q = {q0 , q1 , q2 , q3 , q4 }
Σ is the set of all characters
F = {q4 }
We have a “stop” or “dead” state q5 , not accepting
5
6. How a DFA Processes Strings
Let us build an automaton that accepts the words that contain 01
as a subword
Σ = {0, 1}
L = {x01y | x, y ∈ Σ∗ }
We use the following states
A: start
B: the most recent input was 1 (but not 01 yet)
C: the most recent input was 0 (so if we get a 1 next we should go
to the accepting state D)
D: we have encountered 01 (accepting state)
6
7. We get the following automaton
1
0
1 0 1
A B C D 0,1
0
Transition table
0 1
→A C B
B C B
C C D
∗D D D
Q = {A,B,C,D}, Σ = {0,1}, start state A, final state(s) {D}
7
8. Extending the Transition Function to Strings
In the previous example, what happens if we get 011? 100? 10101?
ˆ
We define δ(q, x) by induction
ˆ
δ : Q × Σ∗ → Q
ˆ
BASIS δ(q, ) = q for |x| = 0
INDUCTION suppose x = ay (y is a string, a is a symbol)
ˆ ˆ
δ(q, ay) = δ(δ(q, a), y)
Notice that if x = a we have
ˆ ˆ
δ(q, a) = δ(q, a) since a = a and δ(δ(q, a), ) = δ(q, a)
8
9. Extending the Transition Function to Strings
ˆ
δ : Q × Σ∗ → Q
ˆ
We write q.x instead of δ(q, x)
We can now define mathematically the language accepted by a
given automaton Q, Σ, δ, q0 , F
L = {x ∈ Σ∗ | q0 .x ∈ F }
On the previous example 100 is not accepted and 10101 is accepted
9
11. Minimalisation
Later in the course we shall show that there is only one machine
with the minimum number of states (up to renaming of states)
Furthermore, there is a (clever) algorithm which can find this
minimal automaton given an automaton for a language
11
12. Example
Mn the “cyclic” automaton with n states on Σ = {1} such that
L(Mn ) = {1l | n divides l}
12
13. Functional representation: Version 1
Q = A|B|C and E = 0|1 and W = [E]
One function next : Q × E → Q
next (A, 1) = A, next (A, 0) = B
next (B, 1) = C, next (B, 0) = B
next (C, b) = C
One function run : Q × W → Q
run (q, b : x) = run (next (q, b), x), run (q, []) = q
accept x = f inal (run (A, x)) where
f inal A = f inal B = F alse, f inal C = T rue
13
14. Functional representation: Version 2
E = 0|1, W = [E]
Three functions FA , FB , FC : W → Bool
FA (1 : x) = FA x, FA (0 : x) = FB x, FA [] = F alse
FB (1 : x) = FC x, FB (0 : x) = FB x, FB [] = F alse
FC (1 : x) = FC x, FC (0 : x) = FC x, FC [] = T rue
We have a mutual recursive definition of 3 functions
14
15. Functional representation: Version 3
data Q = A | B | C
data E = O | I
next :: Q -> E -> Q
next A I = A
next A O = B
next B I = C
next B O = B
next C _ = C
run :: Q -> [E] -> Q
run q (b:x) = run (next q b) x
run q [] = q
15
16. Functional representation: Version 3
accept :: [E] -> Bool
accept x = final (run A x)
final :: Q -> Bool
final A = False
final B = False
final C = True
16
18. Functional representation: Version 4
data Q = A | B | C
data E = O | I
next :: E -> Q -> Q
next I A = A
next O A = B
next I B = C
next O B = B
next _ C = C
run :: Q -> [E] -> Q
run q (b:x) = run (next b q) x
run q [] = q
18
20. A proof by induction
A very important result, quite intuitive, is the following.
Theorem: for any state q and any word x and y we have
q.(xy) = (q.x).y
Proof by induction on x. We prove that: for all q we have
q.(xy) = (q.x).y (notice that y is fixed)
Basis: x = then q.(xy) = q.y = (q.x).y
Induction step: we have x = az and we assume q .(zy) = (q .z).y
for all q
20
21. ˆ
The other definition of δ
Recall that a(b(cd)) = ((ab)c)d; we have two descriptions of words
ˆ
We define δ (q, ) = q and
ˆ ˆ
δ (q, xa) = δ(δ (q, x), a)
ˆ ˆ
Theorem: We have q.x = δ(q, x) = δ (q, x) for all x
21
22. ˆ
The other definition of δ
Indeed we have proved
q. = q and q.(xy) = (q.x).y
As a special case we have q.(xa) = (q.x).a
This means that we have two functions f (x) = q.x and
ˆ
g(x) = δ (q, x) which satisfy
f ( ) = g( ) = q and
f (xa) = f (x).a g(xa) = g(x).a
ˆ
Hence f (x) = g(x) for all x that is q.x = δ (q, x)
22
23. Automatic Theorem Proving
f (0) = h(0) = 0, g(0) = 1
f (n + 1) = g(n), g(n + 1) = f (n), h(n + 1) = 1 − h(n)
We have f (n) = h(n)
We can prove this automatically using DFA
23
24. Automatic Theorem Proving
We have 8 states: Q = {0, 1} × {0, 1} × {0, 1}
We have only one action Σ = {1} and δ((a, b, c), s) = (b, a, 1 − c)
The initial state is (0, 1, 0) = (f (0), g(0), h(0))
Then we have (0, 1, 0).1n = (f (n), g(n), h(n))
We check that all accessible states satisfy a = c (that is, the
property a = c is an invariant for each transition of the automata)
24
25. Automatic Theorem Proving
A more complex example
f (0) = 0 f (1) = 1 f (n + 2) = f (n) + f (n + 1) − f (n)f (n + 1)
f (2) = 1 f (3) = 0 f (4) = 1 f (5) = 1 ...
Show that f (n + 3) = f (n) by using Q = {0, 1} × {0, 1} × {0, 1}
and the transition function (a, b, c) −→ (b, c, b + c − bc) with the
initial state (0, 1, 1)
25
26. Product of automata
How do we represent interaction between machines?
This is via the product operation
There are different kind of products
We may then have combinatorial explosion: the product of n
automata with 2 states has 2n states!
26
27. Product of automata (example)
p0
The product of p1 A B p1 and
p0
p1 p0
p0 C D p0 is A, C B, C
p0
p1
p1 p1 p1 p1
p0
A, D B, D
p0
If we start from A, C and after the word w we are in the state A,D
we know that w contains an even number of p0 s and odd number of
p1 s
27
28. Product of automata (example)
Model of a system of users that have three states I(dle),
R(equesting) and U(sing). We have two users for k = 1 or k = 2
Each user is represented by a simple automaton
rk
ik
uk
28
29. Product of automata (example)
The complete system is represented by the product of these two
automata; it has 3 × 3 = 9 states
i1 , i2 r1 , i2 u1 , i2
i1 , r2 r1 , r2 u 1 , r2
i1 , u2 r1 , u 2 u1 , u2
29
30. The Product Construction
Given A1 = (Q1 , Σ, δ1 , q1 , F1 ) and A2 = (Q2 , Σ, δ2 , q2 , F2 ) two DFAs
with the same alphabet Σ we can define the product A = A1 × A2
set of state Q = Q1 × Q2
transition function (r1 , r2 ).a = (r1 .a, r2 .a)
intial state q0 = (q1 , q2 )
accepting states F = F1 × F2
30
31. The Product Construction
Lemma: (r1 , r2 ).x = (r1 .x, r2 .x)
We prove this by induction
BASE: the statement holds for x =
STEP: if the statement holds for y it holds for x = ya
31
32. The Product Construction
Theorem: L(A1 × A2 ) = L(A1 ) ∩ L(A2 )
Proof: We have (q1 , q2 ).x = (q1 .x, q2 .x) in F iff q1 .x ∈ F1 and
q2 .x ∈ F2 , that is x ∈ L(A1 ) and x ∈ L(A2 )
Example: let Mk be the “cyclic” automaton that recognizes
multiple of k, such that L(Mk ) = {an | k divides n}, then
M6 × M9 M18
Notice that 6 divides k and 9 divides k iff 18 divides k
32
33. Product of automata
It can be quite difficult to build automata directly for the
intersection of two regular languages
Example: build a DFA for the language that contains the subword
ab twice and an even number of a’s
33
34. Variation on the product
We define A1 ⊕ A2 as A1 × A2 but we change the notion of
accepting state
(r1 , r2 ) accepting iff r1 ∈ F1 or r2 ∈ F2
Theorem: If A1 and A2 are DFAs, then
L(A1 ⊕ A2 ) = L(A1 ) ∪ L(A2 )
Example: multiples of 3 or of 5 by taking M3 ⊕ M5
34
35. Complement
¯
If A = (Q, Σ, δ, q0 , F ) we define the complement A of A as the
automaton
¯
A = (Q, Σ, δ, q0 , Q − F )
¯
Theorem: If A is a DFA, then L(A) = Σ∗ − L(A)
Remark: We have A ⊕ A = A × A
35
36. Languages
Given an alphabet Σ
A language is simply a subset of Σ∗
Common languages, programming languages, can be seen as sets of
words
Definition: A language L ⊆ Σ∗ is regular iff there exists a DFA
A, on the same alphabet Σ such that L = L(A)
Theorem: If L1 , L2 are regular then so are
L1 ∩ L2 , L1 ∪ L2 , Σ∗ − L1
36
37. Remark: Accessible Part of a DFA
Consider the following DFA
0 0
0 0
q0 q1 1 q2 q3 1
1 0
it is clear that it accepts the same language as the DFA
0
0
q0 q1 1
1
which is the accessible part of the DFA
The remaining states are not accessible from the start state and
can be removed
37
38. Remark: Accessible Part of a DFA
The set
Acc = {q0 .x | x ∈ Σ∗ }
is the set of accessible states of the DFA (states that are accessible
from the state q0 )
38
39. Remark: Accessible Part of a DFA
Proposition: If A = (Q, Σ, δ, q0 , F ) is a DFA then and
A = (Q ∩ Acc, Σ, δ, q0 , F ∩ Acc) is a DFA such that L(A) = L(A ).
Proof: It is clear that A is well defined and that L(A ) ⊆ L(A).
If x ∈ L(A) then we have q0 .x ∈ F and also q0 .x ∈ Acc. Hence
q0 .x ∈ F ∩ Acc and x ∈ L(A ).
39
40. Automatic Theorem Proving
Take Σ = {a, b}.
Define L set of x ∈ Σ∗ such that any a in x is followed by a b
Define L set of x ∈ Σ∗ such that any b in x is followed by a a
Then L ∩ L = { }
Intuitively if x = in L we have
...a... → ...a...b...
if x in L we have
...b... → ...b...a...
40
41. Automatic Theorem Proving
We should have L ∩ L = { } since a nonempty word in L ∩ L
should be infinite
We can prove this automatically with automata!
L is regular: write a DFA A for L
L is regular: write a DFA A for L
We can then compute A × A and check that
L ∩ L = L(A × A ) = { }
41
42. Application: control system
We have several machines working concurrently
We need to forbid some sequence of actions. For instance, if we
have two machines MA and MB, we may want to say that MB
cannot be on when MA is on. The alphabets will contain: onA,
offA, onB, offB
Between onA, on2 there should be at least one offA
The automaton expressing this condition is
=onA,onB =onB,offA
offA
p0 p1
onB offB onA onB
p3 p2
onA
42
43. Application: control system
What is interesting is that we can use the product construction to
combine several conditions
For instance, another condition maybe that onA should appear
before onB appear. One automaton representing this condition is
=onA,onB
q0 onA q1
onB
q2
We can take the product of the two automata to express the two
conditions as one automaton, which may represent the control
system
43