pub fn set_produces<T: DeepModel, I: View<ViewTy = FSet<T::DeepModelTy>>>(
start: I,
visited: Seq<T>,
end: I,
) -> bool
Expand description
logic
pearlite! { start@.len() == visited.len() + end@.len() && (forall<x: T::DeepModelTy> start@.contains(x) ==> (exists<x1: T> x1.deep_model() == x && visited.contains(x1)) || end@.contains(x)) && (forall<x: T> visited.contains(x) ==> start@.contains(x.deep_model()) && !end@.contains(x.deep_model())) && (forall<x: T::DeepModelTy> end@.contains(x) ==> start@.contains(x) && !exists<x1: T> x1.deep_model() == x && visited.contains(x1)) && (forall<i: Int, j: Int> 0 <= i && i < visited.len() && 0 <= j && j < visited.len() && visited[i].deep_model() == visited[j].deep_model() ==> i == j) }