%% %CopyrightBegin%
%%
%% SPDX-License-Identifier: Apache-2.0
%%
%% Copyright Ericsson AB 2021-2025. All Rights Reserved.
%%
%% %CopyrightEnd%

[;1m  drestriction(BinRel1, Set)[0m

  Returns the difference between the binary relation [;;4mBinRel1[0m and
  the restriction of [;;4mBinRel1[0m to [;;4mSet[0m.

[;1mExamples[0m

    1> R1 = sofs:relation([{1,a},{2,b},{3,c}]).
    2> S = sofs:set([2,4,6]).
    3> R2 = sofs:drestriction(R1, S).
    4> sofs:to_external(R2).
    [{1,a},{3,c}]

  [;;4mdrestriction(R, S)[0m is equivalent to [;;4m[0m
  [;;4mdifference(R, restriction(R, S))[0m.

[;1m  drestriction(SetFun, Set1, Set2)[0m

  Returns a subset of [;;4mSet1[0m containing those elements that do not
  give an element in [;;4mSet2[0m as the result of applying [;;4mSetFun[0m.

[;1mExamples[0m

    1> SetFun = {external, fun({_A,B,C}) -> {B,C} end}.
    2> R1 = sofs:relation([{a,aa,1},{b,bb,2},{c,cc,3}]).
    3> R2 = sofs:relation([{bb,2},{cc,3},{dd,4}]).
    4> R3 = sofs:drestriction(SetFun, R1, R2).
    5> sofs:to_external(R3).
    [{a,aa,1}]

  [;;4mdrestriction(F, S1, S2)[0m is equivalent to [;;4m[0m
  [;;4mdifference(S1, restriction(F, S1, S2))[0m.
