From 857ef08ace29b8c9424c0f6224914cf591b1ecd5 Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Wed, 6 Feb 2019 22:05:21 +0100 Subject: [PATCH] WIP --- DFA.fs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/DFA.fs b/DFA.fs index b0db430..47b9b31 100644 --- a/DFA.fs +++ b/DFA.fs @@ -17,11 +17,19 @@ let validateDFA (dfa:DFA) = let allAcceptingStatesAreStates = dfa.acceptingStates |> List.map (fun x -> List.contains x dfa.states) - |> List.filter (fun x -> not x) + |> List.filter not + |> List.length < 1 + + let deltaIsComplete = + dfa.states + |> List.collect (fun x -> dfa.sigma |> List.map (fun y -> (x, y))) + |> List.map (fun x -> dfa.delta (fst x) (snd x)) + |> List.filter (fun x -> not (List.contains x dfa.states)) |> List.length < 1 List.contains dfa.beginState dfa.states || - allAcceptingStatesAreStates + allAcceptingStatesAreStates || + deltaIsComplete let processChar (dfa: DFA) (state: State) (char: Char) = dfa.delta state char