Lines Matching defs:acc
652 fun update acc [] = SOME acc
653 | update acc (edge :: edges) =
656 | Joinable _ => update (edge :: acc) edges
657 | Apart => update acc edges
662 fun addFactorEdge (pol,atm) ((pol',atm'),acc) =
663 if pol <> pol' then acc
670 | Joinable sub => (sub,edge) :: acc
671 | Apart => acc
674 fun addReflEdge (false,_) acc = acc
675 | addReflEdge (true,atm) acc =
681 | Joinable _ => edge :: acc
682 | Apart => acc
685 fun addIrreflEdge (true,_) acc = acc
686 | addIrreflEdge (false,atm) acc =
692 | Joinable sub => (sub,edge) :: acc
693 | Apart => acc
696 fun init_edges acc _ [] =
698 fun init ((apart,sub,edge),(edges,acc)) =
699 (edge :: edges, (apart,sub,edges) :: acc)
701 snd (List.foldl init ([],[]) acc)
703 | init_edges acc apart ((sub,edge) :: sub_edges) =
709 val (acc,apart) =
711 SOME apart' => ((apart',sub,edge) :: acc, edge :: apart)
712 | NONE => (acc,apart)
714 init_edges acc apart sub_edges
737 fun fact acc [] = acc
738 | fact acc ((_,sub,[]) :: others) = fact (sub :: acc) others
739 | fact acc ((apart, sub, edge :: edges) :: others) =
753 fact acc others