C Logic-based rules

We present below the judgment rules for each of the moral values that were used in the experiments.

Affordability:

valueSupport(sell_energy(X, Payoff), "improve_payoff") :-
    X > 100.

valueDefeat(buy_energy(X, Payoff, Budget), "improve_payoff") :-
    X > 100 & Payoff < (-Budget).

Environmental sustainability:

valueDefeat(buy_energy(X), "promote_grid_autonomy") :-
    X > 100.
valueDefeat(sell_energy(X), "promote_grid_autonomy") :-
    X > 100.
valueDefeat(grid_consumption(X, OverConsumption),
            "balance_supply_demand") :-
    X > 100 & OverConsumption > (3 / 10).
valueDefeat(storage_consumption(X, EnergyWaste),
            "balance_supply_demand") :-
    X > 100 & EnergyWaste > (3 / 10).

valueSupport(buy_energy(X), "promote_grid_autonomy") :-
    X <= 100.
valueSupport(sell_energy(X), "promote_grid_autonomy") :-
    X <= 100.
valueSupport(give_energy(X), "promote_grid_autonomy") :-
    X > 0.
valueSupport(grid_consumption(X), "promote_grid_autonomy") :-
    X > 0.

Inclusiveness:

valueDefeat(buy_energy(X,Equity,WellBeing,GlobalWellBeing),
            "promote_justice") :-
    Equity < (9 / 10) &
    Threshold = (12 / 10) * GlobalWellBeing &
    WellBeing > Threshold.
valueDefeat(give_energy(X,Exclusion), "promote_justice") :-
    Exclusion > (5 / 10).
valueDefeat(grid_consumption(X,Equity,WellBeing,GlobalWellBeing),
            "promote_justice") :-
    Equity < (9 / 10) &
    Threshold = (12 / 10) * GlobalWellBeing &
    WellBeing > Threshold.
valueDefeat(sell_energy(X,Exclusion), "promote_justice") :-
    Exclusion > (5 / 10).
valueDefeat(sell_energy(X,Equity), "promote_justice") :-
    Equity < (9 / 10).


valueSupport(buy_energy(X,Exclusion), "promote_justice") :-
    Exclusion >= (5 / 10).
valueSupport(buy_energy(X,Equity,WellBeing,GlobalWellBeing),
             "promote_justice") :-
    Equity < (9 / 10) &
    Threshold = (9 / 10) * GlobalWellBeing &
    WellBeing < Threshold.
valueSupport(give_energy(X,Equity,Exclusion), "promote_justice") :-
    Equity < (9 / 10) &
    Exclusion < (5 / 10).
valueSupport(grid_consumption(X,Exclusion), "promote_justice") :-
    Exclusion >= (5 / 10).
valueSupport(grid_consumption(X,Equity,WellBeing,GlobalWellBeing),
             "promote_justice") :-
    Equity < (9 / 10) &
    Threshold = (9 / 10) * GlobalWellBeing &
    WellBeing < Threshold.

Security of supply:

valueSupport(grid_consumption(X, WellBeing, GlobalWellBeing),
             "promote_comfort") :-
    X > 100 &
    WellBeing >= (8 / 10).

valueSupport(storage_consumption(X, WellBeing, GlobalWellBeing),
             "promote_comfort") :-
     X > 100 &
     WellBeing >= (8 / 10).