Paper deep dive
The AR Fairness Metamodel: A Structured Framework for Fairness Measures
Julian Alfredo Mendez, Timotheus Kampik
Intelligence
Status: succeeded | Model: Gemma-4-26B-A4B | Prompt: intel-v1 | Confidence: 94%
Last extracted: 9/18/2026, 3:54:55 AM
Summary
The paper introduces the AR fairness metamodel, a structured framework for representing, analyzing, and comparing fairness measures in resource distribution scenarios. Built on the Tiles framework, it formalizes fairness through agents, resources, attributes, and outcomes, enabling the instantiation of various measures such as equality, equity, Gini index, and Theil index. The authors provide formal proofs regarding relationships between fairness concepts (e.g., strict equity implies equity) and demonstrate the model's applicability to real-world cases like Australia's Child Care Subsidy.
Entities (14)
Relation Signals (10)
Julian Alfredo Mendez → affiliatedwith → Umeå University
confidence 99% · Julian Alfredo Mendez ... Address: Umeå University
Timotheus Kampik → affiliatedwith → Umeå University
confidence 99% · Timotheus Kampik ... Address: Umeå University
AR Fairness Metamodel → appliedto → Australia's Child Care Subsidy
confidence 95% · We provide examples involving ... a detailed fairness measure for Australia's Child Care Subsidy.
AR Fairness Metamodel → buildson → Tiles Framework
confidence 95% · At the conceptual modeling level, our approach builds on the Tiles framework...
Strict Equity → implies → Equity
confidence 93% · Proposition 3.6. (Strict Equity Implies Equity) ... f_seqi(O)=1 => f_eqi(O)=1.
AR Fairness Metamodel → supportsmeasure → Equity
confidence 92% · We provide examples involving both discrete and continuous measures, including ... equity...
AR Fairness Metamodel → supportsmeasure → Equality
confidence 92% · We provide examples involving both discrete and continuous measures, including equality...
Equality → reducedto → Strict Equity
confidence 90% · Proposition 3.8. (Equality Reduced to Strict Equity) ... f_eqa(O)=1 <=> f_seqi(O)=1.
Cypher Suggestions (0)
No Cypher suggestions yet.
Abstract
Abstract:This paper presents the AR fairness metamodel, a framework designed to represent, analyze, and compare different fairness scenarios. The metamodel considers key elements, such as agents, resources, and their attributes, and enables the systematic definition and comparison of various fairness measures. We provide examples involving both discrete and continuous measures, including equality, equity, group fairness, individual fairness, the Gini index, the Theil index, Jain's fairness index, and a detailed fairness measure for Australia's Child Care Subsidy. We also explore relationships among group fairness, individual fairness, and envy-freeness, supported by formal proofs. At the conceptual modeling level, our approach builds on the Tiles framework, which offers modular components that can be connected to capture diverse fairness definitions. The goal is to make AR-based fairness definitions practical and adaptable across contexts, providing a clear way to define, compare, and evaluate them. An implementation of the Tiles framework is available as an open-source tool, and can support fairness modeling and evaluation across a wide range of applications.
Tags
Links
- Source: https://arxiv.org/abs/2609.19234v1
- Canonical: https://arxiv.org/abs/2609.19234v1
Trouble viewing inline? Open PDF directly →
Full Text
92,968 characters extracted from source content.
Expand or collapse full text
The AR Fairness Metamodel: A Structured Framework for Fairness Measures Julian Alfredo Mendez Timotheus Kampik Address: Umeå University, Umeå, Sweden Abstract This paper presents the AR fairness metamodel, a framework designed to represent, analyze, and compare different fairness scenarios. The metamodel considers key elements, such as agents, resources, and their attributes, and enables the systematic definition and comparison of various fairness measures. We provide examples involving both discrete and continuous measures, including equality, equity, group fairness, individual fairness, the Gini index, the Theil index, Jain’s fairness index, and a detailed fairness measure for Australia’s Child Care Subsidy. We also explore relationships among group fairness, individual fairness, and envy-freeness, supported by formal proofs. At the conceptual modeling level, our approach builds on the Tiles framework, which offers modular components that can be connected to capture diverse fairness definitions. The goal is to make AR-based fairness definitions practical and adaptable across contexts, providing a clear way to define, compare, and evaluate them. An implementation of the Tiles framework is available as an open-source tool, and can support fairness modeling and evaluation across a wide range of applications. keywords fairness metamodel, formalization of fairness, resource distribution, responsible artificial intelligence 11 1 Julian A. Mendez https://orcid.org/0000-0002-7383-0529, julian.mendez@cs.umu.se , 22 2 Timotheus Kampik https://orcid.org/0000-0002-6458-2252, tkampik@cs.umu.se 1 Introduction Fairness is a critical consideration across domains such as social policy, economics, and technology. Despite its importance, defining and evaluating fairness remains a challenge, as assessments of what is fair often vary across contexts and stakeholders. There is no universal definition of fairness, and even seemingly technical decisions can carry nuanced fairness implications [3]. In a given scenario, fairness can be addressed by specifying a fairness measure that evaluates the distribution of resources among agents. Although fairness measures are inherently subjective, they must be rigorously defined in critical contexts. This makes it essential to systematize how such measures are specified, from abstract, subjective interpretations to concrete execution, and to support the comparison of fairness definitions. This paper introduces the AR fairness metamodel, designed to represent and analyze fairness measures and scenarios. The metamodel extends prior research in [27] and serves as a model of models [37], where each model is an instance of the metamodel. Specific instances can then be evaluated to verify whether they comply with a given definition of fairness. The metamodel addresses the challenges of defining and evaluating fairness by offering a structured approach. It provides an abstract representation of fairness scenarios, incorporating key elements such as agents, resources, and attributes, essential components for assessing whether an outcome adheres to a particular fairness definition. We employ Tiles [27], a framework designed to support the AR fairness metamodel. Tiles consists of modular blocks that can be interconnected to specify fairness definitions. Each block is annotated to indicate how it can be connected to other blocks within the framework. The combination of the Tiles framework and the AR fairness metamodel provides a comprehensive set of tools to model and evaluate fairness across diverse scenarios, with applications in real-world contexts. This paper is organized as follows. Section 2 provides an overview of computational models of fairness. Section 3 introduces the AR fairness metamodel and its components, including identifiers, measures, attributes, and auxiliary functions. Section 4 discusses the structure of the blocks and their graphical notation. Section 5 offers a discussion of the AR fairness metamodel and the Tiles framework, focusing on their capabilities and limitations. Finally, Section 6 concludes with reflections and directions for future work. This paper revises and extends work presented at the LNGAI 2025 workshop [29, 30]. Notably, our extension provides: (1) a concrete example of fairness applied to Child Care Subsidy in Australia; (2) a discussion of how group fairness and individual fairness can preserve envy-freeness; (3) an additional fairness measure instantiated within our metamodel, specifically the Theil index [11]; (4) a formal analysis of relationships among several continuous fairness measures that we instantiate; (5) a detailed practical demonstration of how the Tiles framework operates, particularly the engineering of new tiles from primitive tiles. 2 Background The importance of fairness in artificial intelligence (AI) and subfields such as machine learning is widely recognized. From a modeling perspective, evaluating fairness requires the ability to identify and quantify unwanted bias, which may lead to prejudice and ultimately discrimination. Formalizing fairness contributes to greater transparency in achieving equitable outcomes, benefiting both individuals and the groups they represent. Although operationalizing fairness is challenging, efforts to formalize it and automate fairness verification [1, 2] are highly relevant. Several quantifiable definitions have been proposed, reflecting legal, philosophical, and social perspectives [15, 18, 21, 22]. However, differing interpretations can inadvertently harm the very groups they aim to protect [12] or fail to account for intersectionality [22]. Two widely discussed formalizations are individual fairness and group fairness. Individual fairness requires that similar individuals, based on non-protected attributes, receive similar outcomes. Group fairness stipulates that protected groups should receive similar outcomes when non-protected factors are equal [10]. These notions can conflict [7]. For example, if two individuals with similar qualifications receive different outcomes solely because they belong to different protected groups, group fairness metrics such as equality of odds or equality of opportunity can be applied to address the disparity. In practice, reconciling these notions and managing the associated value trade-offs remains an active research challenge [14, 16, 3]. Model-based methodologies, such as MBFair [34], enable the verification of software designs with respect to individual fairness. Operational tools for fairness assessment include IBM’s AI Fairness 360 [6] (AIF360), Microsoft’s Fairlearn [9], and Google’s What-if Tool [38] (WIT). AIF360 is a comprehensive open-source Python library that provides fairness metrics and bias mitigation algorithms, operating across three stages: pre-processing, in-processing, and post-processing. Fairlearn includes fairness metrics, bias mitigation algorithms, and fairness dashboards for visual comparisons. WIT is visualization-oriented and offers a dashboard to explore counterfactuals, enabling users to ask “What if this feature changed?”. However, these tools focus primarily on the operationalization of fairness measures rather than their definition and analysis. To address this limitation, we propose a unified metamodel that supports multiple perspectives on fairness, building on the frameworks ACROCPoLis [4] and AcROMAgAt [27]. Our aim is to integrate diverse definitions of fairness into a coherent structure, facilitating consistent evaluation and comparison across scenarios. 3 Fairness Metamodel This section presents AR, a formal metamodel from which fairness definitions can be instantiated. Conceptually, AR focuses on agents, resources, their attributes as first-class abstractions, and the resulting outcomes. The presentation of AR is accompanied by examples that demonstrate its applicability to fairness assessment in specific scenarios, as well as to the abstract comparison of fairness measures. 3.1 Basic Elements A fairness scenario provides the building blocks for relating agents, resources, and their attributes. This relation, called an outcome, is used to evaluate whether a given scenario adheres to a defined concept of fairness. As a prerequisite, we assume two finite background sets: one of (unspecified) agents, denoted by A, and one of (unspecified) resources, denoted by ℛR. We assume that the two sets are disjoint, i.e., ∩ℛ=∅A∩R= . The metamodel is defined as follows. Definition 3.1. (Fairness Scenario) A fairness scenario is a tuple =⟨,,,⟩ F= A, R, A_at, R_at , such that: • ⊆ A and ⊆ℛ R ; both are non-empty; • every agent attribute ∈ a_AT∈ A_at is a function that takes an agent as input; every resource attribute ∈ r_AT∈ R_at is a function that takes a resource as input; the codomains of agent and resource attributes may vary and are specified upon instantiation. Definitions of quantities are crucial for measuring fairness. Notation 3.1 (Sets of Quantities) The set M is a placeholder for a set of quantities such as the real numbers (ℝR), rational numbers (ℚQ), integers (ℤZ), or natural numbers including 0 (ℕ0N_0), with operations totally defined on M. Relevant attributes include, for example: i) the utility function u:→u: R→ M, which returns the value of a resource, and i) the need function q:→q: A→ M, which returns how much of a resource an agent requires. Given a fairness scenario, we can define fairness measures. We denote the power set of a set S by (S)P(S). Definition 3.2. (Fairness Measure) Let =⟨,,,⟩ F= A, R, A_at, R_at be a fairness scenario. An outcome O is an element O∈(×)O ( A× R). When the outcome O is clear from context, we may say that a receives b whenever ⟨a,b⟩∈O a,b ∈ O. A fairness measure f~ f_ F with respect to a fairness scenario F is a function f~:(×)→[0,1] f_ F:P( A× R)→[0,1]. Since 0,1\0,1\ is isomorphic to =false,trueB=\false,true\, we particularly consider the case when f~(O) f_ F(O) returns only 0 or 1. Our interpretation is that 0 corresponds to falsefalse and 1 to truetrue, i.e., if f~(O)=1 f_ F(O)=1, the outcome is fair, and if f~(O)=0 f_ F(O)=0, it is unfair. Generally, we use false,true\false,true\ and 0,1\0,1\ interchangeably. We now illustrate how the definition of a fairness measure can be applied. Notation 3.2 (Functions by Extension) For a function f:A→Bf:A→ B, we denote f as a set of pairs ⟨x,y⟩ x,y such that x ranges over the elements of A exactly once and y=f(x)y=f(x). We also use Iverson bracket notation, where f(x)=[P(x)]f(x)=[P(x)] denotes that f(x)=1f(x)=1 if P(x)P(x) holds, and f(x)=0f(x)=0 otherwise. Example 3.3. (Fairness Scenario) A group of agents A, namely Alice (A), Bob (B), Carol (C), David (D), Eve (E), and Frank (F), apply for a subsidy. Assume there are three types of resources R1R_1, R2R_2, and R3R_3, with utilities u of 10, 20, and 30 respectively. The agents’ needs are encoded in the function q, where A and D need 10, B and E need 20, and C and F need 30 each. Suppose it is considered fair to give everyone at least one of the two best resources. The full instantiation of the fairness scenario and fairness measure is summarized as follows: =A,B,C,D,E,F A=\A,B,C,D,E,F\, =R1,R2,R3 R=\R_1,R_2,R_3\, =q:→ℕ0, A_at=\q: A _0, q=q=\ ⟨A,10⟩, A,10 , ⟨B,20⟩, B,20 , ⟨C,30⟩, C,30 , ⟨D,10⟩, D,10 , ⟨E,20⟩, E,20 , ⟨F,30⟩ F,30 \\, =u:→ℕ0,u=⟨R1,10⟩,⟨R2,20⟩,⟨R3,30⟩ R_at=\u: R _0,\ u=\ R_1,10 , R_2,20 , R_3,30 \\, f~(O)=[∀a∈(a receives R2 or a receives R3)] f_ F(O)=[∀ a∈ A\ (a receives R_2 or a receives R_3)] Here, A and R contain the agents and resources respectively, q specifies how much each agent needs, and u specifies the utility of each resource. Intuitively, f~(O) f_ F(O) requires that every agent receives R2R_2 or R3R_3 (or both). Considering two different outcomes: O1=⟨A,R3⟩,O_1=\ A,R_3 , ⟨B,R3⟩, B,R_3 , ⟨C,R3⟩, C,R_3 , ⟨D,R3⟩, D,R_3 , ⟨E,R3⟩, E,R_3 , ⟨F,R3⟩ F,R_3 \ and O2=⟨A,R3⟩,O_2=\ A,R_3 , ⟨B,R2⟩, B,R_2 , ⟨C,R1⟩, C,R_1 , ⟨D,R3⟩, D,R_3 , ⟨E,R2⟩, E,R_2 , ⟨F,R1⟩ F,R_1 \, we see that f~(O1)=1 f_ F(O_1)=1: O1O_1 is fair; in contrast, f~(O2)=0 f_ F(O_2)=0: O2O_2 is unfair. The notion of fairness applied in this example does not consider the needs of the agents. Fairness measures that incorporate needs are presented further below. Example 3.4. (Modeling Child Care Subsidy) A child benefit is a social security payment distributed to parents or guardians of children. Different countries apply varying rules to allocate these payments. For instance, Australia provides Child Care Subsidy (CCS)33 3 https://w.servicesaustralia.gov.au/child-care-subsidy (accessed 2026-09-16), which helps parents and guardians cover the cost of formal child care. We model this scenario as an instantiation of our metamodel. First, we identify the elements of the fairness scenario. The agents A are all eligible parents and guardians according to the regulations44 4 https://w.servicesaustralia.gov.au/who-can-get-child-care-subsidy?context=41186 (accessed 2026-09-16). The resources R are the available hours of child care subsidized by the scheme, with =ℕ0 M=N_0 used to measure Australian dollars (AUD). We define a utility function u:→ℕ0u: R _0 to quantify the value of each option, in terms of hours or their equivalent in AUD, given a fixed hourly rate. Parents and guardians may require child care hours, modeled by a need function q:→ℕ0q: A _0. The income function w:→ℕ0w: A _0 represents a family’s combined annual income. The total amount each agent receives in O is determined by the function rO:→ℕ0r_O: A _0. In Australia, the CCS provided care to 1,447,460 children across 1,016,920 families, at an average hourly fee of 13.15 AUD, representing a total budget of 3.89 billion AUD in the last quarter of 2024 (October/December)55 5 https://w.education.gov.au/early-childhood/about/data-and-reports/quarterly-reports/child-care-subsidy-data-report-december-quarter-2024 (accessed 2026-09-16). Assume the budget is divided equally, with every participant receiving the same amount. If divided equally by family, this results in approximately 1,275 AUD per family per month. If divided by child, this corresponds to about 896 AUD per child per month. Families with one child would prefer the former criterion, while families with multiple children would prefer the latter. In practice, the Australian government allows certain vulnerable groups to receive a higher subsidy66 6 https://w.education.gov.au/early-childhood/families/first-nations-activity-test (accessed 2026-09-16). To facilitate equitable distribution, we must consider how each family can receive sufficient funding to pay for caregivers, regardless of whether they receive more than they need. For example, if 896 AUD per month is sufficient to cover the cost of one child’s care, distributing the budget equally according to the number of children aligns with the principle of equity. 3.2 An Analysis of Equality and Equity We now demonstrate how the fairness metamodel can be applied to formalize and compare two well-known fairness measures: equality and equity. Under equality, every agent receives exactly the same amount of resources. Definition 3.5. (Equality, Equity, and Strict Equity) Let =⟨,,,⟩ F= A, R, A_at, R_at be a fairness scenario, let u∈u∈ R_at be a utility function, and let O be an outcome. The accumulation of received resources rO:→r_O: A→ M is defined as: rO(a)=∑⟨a,b⟩∈Ou(b).r_O(a)= _ a,b ∈ Ou(b)\ . (1) This function sums the utility accumulated by an agent. • The equality fairness measure f~eqa f_ F_eqa is f~eqa(O)=[∀a,a′∈(rO(a)=rO(a′))]. f_ F_eqa(O)=[∀ a,a ∈ A\ (r_O(a)=r_O(a ))]. • If q∈q∈ A_at is the need function, the equity fairness measure f~eqi f_ F_eqi is f~eqi(O)=[∀a∈(rO(a)≥q(a))]. f_ F_eqi(O)=[∀ a∈ A\ (r_O(a)≥ q(a))]. • The strict equity fairness measure f~seqi f_ F_seqi is f~seqi(O)=[∀a∈(rO(a)=q(a))]. f_ F_seqi(O)=[∀ a∈ A\ (r_O(a)=q(a))]. In Definition 3.5, equity requires that each agent receives at least as much as they need. This notion can be strengthened so that it is violated if an agent receives more than they need. We call this stricter version strict equity, which constitutes a special case of equity. Proposition 3.6. (Strict Equity Implies Equity) For a fairness scenario F, for every outcome O, the following implication holds: f~seqi(O)=1⇒f~eqi(O)=1. f_ F_seqi(O)=1 f_ F_eqi(O)=1. Proof 3.7. Let =⟨,,,⟩ F= A, R, A_at, R_at be a fairness scenario, and let q:→q: A→ M be the need function with q∈q∈ A_at. If f~seqi(O)=1 f_ F_seqi(O)=1, then by definition ∀a∈(rO(a)=q(a))∀ a∈ A\ (r_O(a)=q(a)). Consequently, it follows that ∀a∈(rO(a)≥q(a))∀ a∈ A\ (r_O(a)≥ q(a)), and therefore f~eqi(O)=1 f_ F_eqi(O)=1. More interestingly, equality can be reduced to strict equity by stipulating that the equally distributed resources are sufficient to satisfy the agents’ needs. In other words, if identical amounts are distributed to every agent and each requires the same amount, then it is possible to reduce a fairness scenario to another one containing a need function that satisfies all agents. As a prerequisite, we fix background sets of fairness scenarios ℱF and outcomes O. Proposition 3.8. (Equality Reduced to Strict Equity) For every fairness scenario F and outcome O, there exists a function τ:ℱ×→ℱτ:F×O , such that f~eqa(O)=1⟺f~τ(,O)seqi(O)=1. f_ F_eqa(O)=1 f_τ( F,O)seqi(O)=1. Proof 3.9. Let =⟨,,,⟩ F= A, R, A_at, R_at be a fairness scenario and O an outcome. Choose an arbitrary element a0∈a_0∈ A, which is well-defined because A is non-empty, and define the function q:→q: A→ M as q(a):=rO(a0)q(a):=r_O(a_0) (i.e., q is fixed independently of input a). Also, let τ(,O)=⟨,∪q,,⟩τ( F,O)= A, A_at∪\q\, R, R_at . (⇒ ) Assume that f~eqa(O)=1 f_ F_eqa(O)=1 and choose a,a′∈a,a ∈ A. Then, by definition rO(a)=rO(a′)r_O(a)=r_O(a ), specifically rO(a)=rO(a0)r_O(a)=r_O(a_0). By definition of q, it holds that q(a)=rO(a0)q(a)=r_O(a_0). Since a is arbitrary, we have ∀a∈∀ a∈ A, rO(a)=q(a)r_O(a)=q(a), and therefore f~τ(,O)seqi(O)=1 f_τ( F,O)seqi(O)=1. (⇐ ) Assume that f~τ(,O)seqi(O)=1 f_τ( F,O)seqi(O)=1 and choose a∈a∈ A. Then, by definition rO(a)=q(a)r_O(a)=q(a). By definition of q, it holds that q(a)=rO(a0)q(a)=r_O(a_0). Since a is arbitrary, ∀a,a′∈∀ a,a ∈ A we have rO(a)=rO(a′)r_O(a)=r_O(a ), and therefore f~eqa(O)=1 f_ F_eqa(O)=1. In summary, all agents require what an arbitrary agent receives. Only if all agents receive the same amount are their needs strictly met. Example 3.10. (Equity in Child Care Subsidy) Building on the Australian child care subsidy scenario presented in Example 3.4, we observe that strict equity is more nuanced than equality, since every family must receive exactly what is needed to pay for child care. The complexity arises because caregivers may charge differently depending on location, qualifications, availability, or by grouping multiple children within the same household. The Australian Government adopts an equity-based approach, as the amount provided varies according to the family’s combined income77 7 https://w.servicesaustralia.gov.au/your-income-can-affect-child-care-subsidy?context=41186 (accessed 2026-09-16), summarized in Table 1. A payment of 100% corresponds to 400 AUD per week. Considering the combined annual income w, which is an agent attribute, the need function q can be defined as: q(a)=400⋅max(90−max(w(a)−83280,0)5000100, 0)q(a)=400· ( 90- (w(a)-83280,0)5000100,\ 0 ) Families are expected to pay the remaining amount per week, summing to 420 AUD. These values apply to partnered families with a single child88 8 https://w.startingblocks.gov.au/child-care-subsidy-calculator (accessed 2026-09-16). A family can receive at most 360 AUD per week, equivalent to 1,543 AUD per month, which contrasts with the equality cases of 896 AUD per child or 1,275 AUD per family. Table 1: Percentage of the Australian Child Care Subsidy according to family income. Family income Child Care Subsidy percentage 0 to 83,280 AUD 90% More than 83,280 AUD to below 533,280 AUD Between 90% and 0%. The percentage decreases by 1 point for every 5,000 AUD earned above 83,280 AUD 533,280 AUD or more 0% Under equality, every agent receives the same amount of resources, regardless of individual circumstances. Under equity, each agent receives at least the amount they need, independent of what others receive. Under strict equity, each agent receives exactly what they need. These measures are defined in Definition 3.5. 3.3 Preferences In the examples above, we used quantitative functions to evaluate fairness in the distribution of resources among agents. However, qualitative functions can also serve this purpose. Attributes may be used to determine preferences and thus define fairness measures. Note that qualitative functions can also be used to group agents into categories. Definition 3.11. (Preference Function) A preference function v is a function v:→(×)v: A ( R× R), such that for each agent a, v(a)v(a) determines a complete and transitive binary relation on R [33]. For each pair ⟨b1,b2⟩∈v(a) b_1,b_2 ∈ v(a), the interpretation is “agent a weakly prefers resource b2b_2 to resource b1b_1,” or equivalently, “b2b_2 is at least as preferred as b1b_1.” An ordinal preference function σ is a function σ:→Perm()σ: A ( R), where Perm()=(b1,b2,…,bn)∣b1,b2,…,bn=Perm( R)=\(b_1,b_2,…,b_n) \b_1,b_2,…,b_n\= R\, such that for each agent it defines a ranking (a strict total preference order) over all resources, ordered from most preferred to least preferred. The notation b1≻ab2b_1 _ab_2 indicates that b1b_1 precedes b2b_2 in σ(a)σ(a), and is read as “a prefers b1b_1 over b2b_2.” This particular representation does not allow for ties, i.e., situations in which an agent is indifferent between two resources. To accommodate ties, the definition of ranking can be relaxed to a weak order, where every pair is comparable but some pairs may be considered equally good. A preference score for agents A in resources R is a function u:×→[0,1]u: A× R→[0,1], such that each agent a assigns a utility value to each resource r, placing all resources in total order. This score allows for ties and models the intensity of each agent’s preference for each resource. Example 3.12. (Ordinal Preferences) Assume that =A, A=\A, B,B, C,C, D,D, EE\, and that each agent can receive a jacket that is either large (L) or small (S), i.e., =L,S R=\L,S\. Each agent chooses jackets in some order of preference. To model these preferences, we define the attribute v:→Perm()v: A ( R) as v=⟨A,(S,L)⟩,⟨B,(S,L)⟩,⟨C,(L,S)⟩,⟨D,(L,S)⟩,⟨E,(L,S)⟩.v=\ A,(S,L) , B,(S,L) , C,(L,S) , D,(L,S) , E,(L,S) \. In this case, agent B would be satisfied with a large jacket but would prefer a small one, while agent C prefers a large jacket but would accept a small one. A fairness measure can require that every agent receives at least one resource from their preference list: f~(O)=[∀a∈,∃b∈ such that a receives b]. f_ F(O)=[∀ a∈ A,∃ b∈ R such that a receives b]. The agents may be satisfied with the outcome O=⟨A,S⟩,⟨B,L⟩,⟨C,S⟩,⟨D,L⟩,⟨E,L⟩,O=\ A,S , B,L , C,S , D,L , E,L \, but this does not prevent agent C from envying B’s jacket, or B from envying C’s jacket. If they exchange jackets, yielding O=⟨A,S⟩,⟨B,S⟩,⟨C,L⟩,⟨D,L⟩,⟨E,L⟩,O=\ A,S , B,S , C,L , D,L , E,L \, i.e., no agent envies another agent’s jacket. The concept in which no agent envies the outcome of another is called envy-freeness [17, 5, 35, 26]. We can define a new fairness measure f~(O) f_ F(O) considering what we call weak envy-freeness, where each agent receives at least one resource that they prefer over any resource received by another agent: =A,B,C,D,E A=\A,B,C,D,E\, =L,S R=\L,S\, =v:→Perm(),v=⟨A,(S,L)⟩, A_at=\v: A ( R),v=\ A,(S,L) , ⟨B,(S,L)⟩, B,(S,L) , ⟨C,(L,S)⟩, C,(L,S) , ⟨D,(L,S)⟩, D,(L,S) , ⟨E,(L,S)⟩ E,(L,S) \\, =∅ R_at= , f~(O)=[ f_ F(O)=[ ∄a, a, a′∈,a ∈ A, b′∈b ∈ R such that a′ receives b′,a receives b , a does not receive b′,a does not receive b , and ∀b∈ with a receiving b,∀ b∈ R with a receiving b, b′≻ab]\ b _ab]. Here, v represents the resource preferences of each agent, and no resource attribute is required. The change in outcomes in Example 3.12 constitutes a Pareto improvement, since at least one agent is better off without making anyone else worse off. An outcome is Pareto optimal when no further Pareto improvement can be applied. 3.4 Group and Individual Fairness Group fairness ensures that different demographic groups, which may have protected attributes such as race or gender, receive similar outcomes. It focuses on statistical parity across groups. Individual fairness ensures that similar individuals receive similar outcomes, emphasizing consistency in treatment based on relevant features regardless of group membership. Although group fairness and individual fairness may appear to conflict [8], they can be understood as complementary. Let us assume that an attribute can be considered either relevant or irrelevant in determining the distribution of a resource. According to group fairness, if an attribute p is irrelevant, the groups with attribute p should receive the same amount as the groups without attribute p. According to individual fairness, if an attribute q is relevant, agents with similar values of q should be treated similarly. We illustrate this with the following example. Example 3.13. (Group and Individual Fairness) Assume that a group of agents =A,B,C,D,E,F A=\A,B,C,D,E,F\ apply for a loan (L), and that there is a protected demographic attribute p, which should be irrelevant for the loan application. Suppose that only D, E, and F have this attribute, creating two demographic groups: G¬p=A,B,CG_ p=\A,B,C\ and Gp=D,E,FG_p=\D,E,F\. Under group fairness, agents belonging to different demographic groups should be treated similarly, regardless of group membership. Assuming that 2 out of 3 loan applications are accepted, this proportion should hold in both G¬pG_ p and GpG_p. For example, if the applications of A, B, E, and F are accepted while C and D are rejected, group fairness is satisfied. Under individual fairness, if two applicants have nearly identical values for critically relevant attributes, they should receive similar treatment. Suppose q is an essential attribute for determining loan eligibility, and that only B, C, E, and F possess this attribute. If D receives the loan and F does not, individual fairness is violated in this outcome. We formalize this example as follows: =A,B,C,D,E,F A=\A,B,C,D,E,F\, =L R=\L\, =p:→ A_at=\p: A , p=p=\ ⟨A,false⟩, A,false , ⟨B,false⟩, B,false , ⟨C,false⟩, C,false , ⟨D,true⟩, D,true , ⟨E,true⟩, E,true , ⟨F,true⟩ F,true \, q:→q: A , q=⟨A,false⟩,q=\ A,false , ⟨B,true⟩, B,true , ⟨C,true⟩, C,true , ⟨D,false⟩, D,false , ⟨E,true⟩, E,true , ⟨F,true⟩ F,true \\, =∅ R_at= , ε=10−2,⋅≃ε⋅:×→ =10^-2,\ · _ ·: M× M , a≃εb=true,if a=b or (a≠b and |a−b|max(|a|,|b|)<ε)false,otherwisea _ b= casestrue,&if a=b or (a≠ b and |a-b| (|a|,|b|)< )\\ false,&otherwise cases P=a∈∣p(a)P_ A=\a∈ A p(a)\, P¯=a∈∣¬p(a) P_ A=\a∈ A p(a)\, L=a∈∣a receives LL_ A=\a∈ A a receives L\, Gf~(O)=[|P∩L||P|≃ε|P¯∩L||P¯|]G f_ F(O)= [ |P_ A∩ L_ A||P_ A| _ | P_ A∩ L_ A|| P_ A| ], If~(O)=[∀a,a′∈,a≠a′ and q(a)=q(a′)⇒(a receives L∧a′ receives L)∨(a does not receive L∧a′ does not receive L)]I f_ F(O)=[∀ a,a ∈ A,a≠ a and q(a)=q(a ) (a receives L a receives L)\ \ (a does not receive L a does not receive L)]. Here, p is an irrelevant protected attribute for group fairness, q is an essential attribute for individual fairness, and ⋅≃ε⋅· _ · determines whether two quantities are similar up to a tolerance ε . We thus provide two distinct fairness measures: Gf~(O)G f_ F(O) for group fairness and If~(O)I f_ F(O) for individual fairness. Group fairness requires parity in acceptance rates across demographic groups, while individual fairness requires that agents with the same relevant attribute value be treated consistently. 3.5 Relating Envy-Freeness, Individual Fairness, and Group Fairness Group fairness and individual fairness are central concepts in discussions of fairness. We now connect these notions to the concept of envy-freeness. The generalized group fairness measure is based on the similarity of average received utility between agents with and without a protected attribute. Definition 3.14. (Generalized Group Fairness) Let p be a predicate indicating whether an agent has a protected attribute. Define P=a∈∣p(a)P_ A=\a∈ A p(a)\ and P¯=a∈∣¬p(a) P_ A=\a∈ A p(a)\, where A is the finite set of agents and R the finite set of resources. Let u:×→ℝu: A× R be a utility function representing agents’ preferences over resources. Generalized group fairness is satisfied iff the following holds: ∑a∈P∑b∈u(a,b)|P|≃ε∑a∈P¯∑b∈u(a,b)|P¯|. _a∈ P_ A _b∈ Ru(a,b)|P_ A|\; _ \; _a∈ P_ A _b∈ Ru(a,b)| P_ A|. Here, ≃ε _ denotes approximate equality within tolerance ε . Note that if for all a∈,b∈a∈ A,b∈ R, it holds that u(a,b)=[a receives b]u(a,b)=[a receives b], then generalized group fairness reduces to the standard group fairness definition. Some properties of group fairness are outlined below. Proposition 3.15. (Generalized Group Fairness Preserves Envy-Freeness) Group fairness ensures envy-freeness among agents that differ only in their protected attribute. Proof 3.16. Consider Definition 3.14. Envy-freeness requires that every agent receives at least one resource such that, for that agent, it is no worse than any resource received by another agent. Preferences are given by the score u:×→[0,1]u: A× R→[0,1], where 1 denotes the most preferred and 0 the least preferred. Formally, if agent a does not receive a resource r′r that another agent a′a has received, then there must exist some resource r received by a such that u(a,r′)≤u(a,r)u(a,r )≤ u(a,r). Now consider agents a and a′a that differ only in their protected attribute. Assume envy-freeness does not hold, i.e., a′a receives r′r but a does not, and r′r is strictly more preferred for a than any resource a has received. This contradicts group fairness, which ensures that a should have received r′r or an equivalent resource. Hence, the assumption that envy-freeness does not hold leads to a contradiction. Envy-freeness is not only related to group fairness but also to individual fairness, as shown below. Proposition 3.17. (Individual Fairness Implies Envy-Freeness) Individual fairness ensures envy-freeness among agents that belong to the same category when classified by a relevant attribute. Proof 3.18. Consider agents a and a′a that share identical values for all relevant attributes. Assume envy-freeness does not hold, i.e., a′a receives r′r while a does not. This violates individual fairness, since a and a′a coincide in their relevant attributes and should therefore be treated consistently. The contradiction arises from the assumption that envy-freeness does not hold. 3.6 Continuous Fairness Measures In Definition 3.2, we defined f~ f_ F as ranging over the continuous interval [0,1][0,1], but so far we have only presented discrete examples. Continuous measures can also be modeled. One such example is Jain’s fairness index [19], a quantitative measure used to assess how evenly a resource is allocated among n agents. Definition 3.19. (Jain’s Fairness Index) Given a set of agents indexed from 1 to n, such that each agent receives x1,x2,…,xnx_1,x_2,…,x_n respectively, the index is defined (left) and rewritten in terms of fairness measures (right) as: J(x1,…,xn)=(∑i=1nxi)2n⋅∑i=1nxi2,J(x_1,…,x_n)= (Σ _i=1^nx_i )^2n·Σ _i=1^nx_i^2\ , f~(O)=(∑a∈rO(a))2||⋅∑a∈rO(a)2 f_ F(O)= (Σ _a∈ Ar_O(a) )^2| A|·Σ _a∈ Ar_O(a)^2\ . (2) Jain’s fairness index is widely used to measure fairness in network resource allocation, evaluate load balancing schemes in distributed systems, and balance throughput in congestion control protocols. Example 3.20. (Continuous Fairness Measure) Assume that agents need to access resources that represent different values of bandwidth in a computer network. =A,B,C,D A=\A,B,C,D\, =M0,M10,M20,M50 R=\M_0,M_10,M_20,M_50\, =∅ A_at= , =u:→, R_at=\u: R→ M, u=⟨M0,0⟩,\ u=\ M_0,0 , ⟨M10,10⟩, M_10,10 , ⟨M20,20⟩, M_20,20 , ⟨M50,50⟩ M_50,50 \\, f~(O) f_ F(O) as in (2) Here, u represents the utility in megabits per second (Mbps) of each resource. Considering the following outcomes: O1=⟨A,M20⟩,⟨B,M20⟩,⟨C,M20⟩,⟨D,M20⟩,O_1=\ A,M_20 , B,M_20 , C,M_20 , D,M_20 \, O2=⟨A,M20⟩,⟨B,M20⟩,⟨C,M20⟩,⟨D,M0⟩,O_2=\ A,M_20 , B,M_20 , C,M_20 , D,M_0 \, O3=⟨A,M0⟩,⟨B,M0⟩,⟨C,M0⟩,⟨D,M10⟩,O_3=\ A,M_0 , B,M_0 , C,M_0 , D,M_10 \, we obtain f~(O1)=1 f_ F(O_1)=1, f~(O2)=0.75 f_ F(O_2)=0.75, and f~(O3)=0.25 f_ F(O_3)=0.25. Intuitively, O1O_1 is perfectly fair, O2O_2 moderately fair, and O3O_3 clearly unfair. In practice, however, the interpretation of these values depends strongly on context. A continuous fairness measure more closely aligned with social (as opposed to technical) applications is the Gini index, which we discuss in the following example. Example 3.21. (Complement of the Gini Index) The Gini index is a statistical measure of inequality commonly used to quantify the distribution of income or wealth within a population. It has also been applied in other contexts, such as decision tree algorithms in machine learning. In its interpretation, values closer to 0 indicate equality, while values closer to 1 indicate inequality. This behavior is opposite to Jain’s index and to our definition of a fairness measure. Therefore, we define the complement of the Gini index by inverting its output. The Gini index is defined (left) and rewritten in terms of fairness measures (right) as: G=∑i=1n∑j=1n|xi−xj|2⋅n⋅∑i=1nxi,G= _i=1^n _j=1^n|x_i-x_j|2· n· _i=1^nx_i\ , f~(O)=1−∑a1∈∑a2∈|rO(a1)−rO(a2)|2⋅||⋅∑a∈rO(a) f_ F(O)=1- _a_1∈ A _a_2∈ A|r_O(a_1)-r_O(a_2)|2·| A|· _a∈ Ar_O(a) (3) Here, n is the number of agents (or households), and xix_i is the income (or wealth) of agent i. As in Jain’s index (Definition 3.19), we substitute A for n and rO(a)r_O(a) for the amount received by each agent a. In this context, the agents represent households, and the resource is wealth to be distributed. =A,B,C,D,E,F A=\A,B,C,D,E,F\, =R5,R10,R15,R20,R50,R100 R=\R_5,R_10,R_15,R_20,R_50,R_100\, =∅ A_at= , =u:→, R_at=\u: R→ M, u=\ u=\ ⟨R5,5⟩, R_5,5 , ⟨R10,10⟩, R_10,10 , ⟨R15,15⟩, R_15,15 , ⟨R20,20⟩, R_20,20 , ⟨R50,50⟩, R_50,50 , ⟨R100,100⟩ R_100,100 \\, f~(O) f_ F(O) as in (3) Here, u represents the utility (e.g., in thousands of euros) of each resource. Considering the following outcomes: O1=⟨A,R20⟩,⟨B,R20⟩,⟨C,R20⟩,⟨D,R20⟩,⟨E,R20⟩,⟨F,R20⟩,O_1=\ A,R_20 , B,R_20 , C,R_20 , D,R_20 , E,R_20 , F,R_20 \, O2=⟨A,R5⟩,⟨B,R10⟩,⟨C,R15⟩,⟨D,R20⟩,⟨E,R50⟩,⟨F,R100⟩,O_2=\ A,R_5 , B,R_10 , C,R_15 , D,R_20 , E,R_50 , F,R_100 \, O3=⟨A,R5⟩,⟨B,R10⟩,O_3=\ A,R_5 , B,R_10 \, we obtain f~(O1)=1−01440=1 f_ F(O_1)=1- 01440=1, f~(O2)=1−12002400=0.5 f_ F(O_2)=1- 12002400=0.5, and f~(O3)=1−130180≈0.28 f_ F(O_3)=1- 130180≈ 0.28. Intuitively, O1O_1 is perfectly fair, O2O_2 moderately unfair, and O3O_3 clearly unfair. Other indices measure economic inequality in addition to the Gini index. Many of them quantify deviations from the average. One such measure is the Theil index. Example 3.22. (Complement of the Theil Index) The Theil index [11] is a statistical measure of economic inequality based on the concept of entropy. As with the Gini index, values closer to 0 indicate equality, while values closer to 1 indicate inequality. For consistency with our fairness measure definition, we define the complement of the Theil index by inverting its output. The Theil index is defined (left) and rewritten in terms of fairness measures (right) as: T=1n⋅∑i=1nxix¯⋅ln(xix¯),T_T= 1n· _i=1^n x_i x· ( x_i x )\ , f~(O)=1−1||⋅∑a∈rO(a)x¯⋅ln(rO(a)x¯) f_ F(O)=1- 1| A|· _a∈ A r_O(a) x· ( r_O(a) x ) (4) where x¯ x is the average value, defined as: x¯=1n⋅∑i=1nxi, x= 1n· _i=1^nx_i\ , x¯=1||⋅∑a∈rO(a) x= 1| A|· _a∈ Ar_O(a) (5) Here, n is the number of agents (or households) and xix_i is the income (or wealth) of agent i. =A,B,C,D,E,F A=\A,B,C,D,E,F\, =R5,R10,R15,R20,R50,R100 R=\R_5,R_10,R_15,R_20,R_50,R_100\, =∅ A_at= , =u:→, R_at=\u: R→ M, u=⟨R5,5⟩,u=\ R_5,5 , ⟨R10,10⟩, R_10,10 , ⟨R15,15⟩, R_15,15 , ⟨R20,20⟩, R_20,20 , ⟨R50,50⟩, R_50,50 , ⟨R100,100⟩ R_100,100 \\, f~(O) f_ F(O) as in (4) For comparison, consider the first two outcomes from Example 3.21: (1) x¯=120/6=20 x=120/6=20, yielding f~(O1)=1−0=1 f_ F(O_1)=1-0=1, (2) x¯=200/6≃33.33 x=200/6 33.33, yielding f~(O2)=1−0.432≈0.568 f_ F(O_2)=1-0.432≈ 0.568. While the first outcome is measured as perfectly fair, consistent with the Gini index, the second outcome is assessed as somewhat fairer than under the Gini index. This illustrates how different continuous fairness measures can yield distinct interpretations of the same distribution. Continuous inequality measures can be unified under a generalized formulation known as the generalized inequality index (GII) [36, 13, 32]. Definition 3.23. (Generalized Inequality Index) A generalized inequality index (GII) is a function ranging over [0,1][0,1]. On the left we present the definition of a GII, and on the right its reformulation in terms of fairness measures: GII=∑ipi⋅f(xix¯)GII= _ip_i· f\! ( x_i x ) , f~(O)=1−∑a∈w(a)⋅f(rO(a)x¯) f_ F(O)=1- _a∈ Aw(a)· f\! ( r_O(a) x ) (6) Here, xix_i denotes the amount received by agent i, x¯ x is the mean across agents as defined in (5), pip_i denotes the weight associated with agent i, w(a)w(a) denotes the weight for agent a, and f(x)f(x) is chosen according to the specific inequality measure. For example, in the Theil index defined in (4), pi=w(a)=1np_i=w(a)= 1n and f(x)=x⋅ln(x)f(x)=x· (x). Since the GII measures inequality, a value of 0 corresponds to perfect equality, while positive values increase with inequality. In the AR framework, we invert these values: perfect equality is mapped to 1, and lower non-negative values indicate decreasing fairness. Continuous fairness measures can also be combined to fine-tune evaluations and capture multiple contexts of fairness simultaneously. The contextual fairness [23] measure is a fairness measure composed by other measures. Definition 3.24. (Contextual Fairness) Given a set of fairness measures f~i f_ F_i with respective weights wiw_i, 1≤i≤n1≤ i≤ n, such that ∑i=1nwi=1. _i=1^nw_i=1. We denote the contextual fairness measure f~co f_ F_co as: f~co(O)=∑i=1nwi⋅f~i(O). f_ F_co(O)= _i=1^nw_i· f_ F_i(O). Fairness measures as defined in Definition 3.24 can be used to detect bias in a dataset. In Example 3.25, we show a salient case where bias was found in a computer system used for justice in the United States. Example 3.25. (Fairness Measure for Equalized Odds) The COMPAS (Correctional Offender Management Profiling for Alternative Sanctions) system [24] is a well-known risk assessment tool used in the U.S. criminal justice system to predict the likelihood of recidivism (re-offending after a prior arrest). Studies, most notably by ProPublica in 201699 9 https://github.com/propublica/compas-analysis, found that COMPAS exhibited racial bias: it was more likely to falsely flag Black defendants as future criminals (higher false positive rate) and more likely to misclassify White defendants as low risk (higher false negative rate). Based on this example, we design a fairness measure to detect bias in a prediction system. The system outputs two possible scores (resources), analogous to COMPAS: • RlowR_low: Low Risk (scores 1–4) • RhighR_high: Medium Risk (scores 5–7) and High Risk (scores 8–10) The prediction system is defined as follows: =A,B,C,D,E,F A=\A,B,C,D,E,F\, =Rlow,Rhigh R=\R_low,R_high\, =p:→, A_at=\p: A , p=⟨A,false⟩,p=\ A,false , ⟨B,false⟩, B,false , ⟨C,false⟩, C,false , ⟨D,true⟩, D,true , ⟨E,true⟩, E,true , ⟨F,true⟩, F,true \, res:→,res: A→ R, res=⟨A,Rlow⟩,res=\ A,R_low , ⟨B,Rhigh⟩, B,R_high , ⟨C,Rhigh⟩, C,R_high , ⟨D,Rlow⟩, D,R_low , ⟨E,Rlow⟩, E,R_low , ⟨F,Rhigh⟩, F,R_high \, =u:→,u=⟨Rlow,0⟩, R_at=\u: R→ M,\ u=\ R_low,0 , ⟨Rhigh,1⟩ R_high,1 \\, (xi)i=1n¯ (x_i)_i=1^n denotes the arithmetic mean of the sequence (x1,x2,…,xn)(x_1,x_2,…,x_n), corr:⋃n=1∞(×)→[−1,1]corr: _n=1^∞( M× M)→[-1,1], defined as corr((xi)i=1n,(yi)i=1n)=∑k=1n(xk−(xi)i=1n¯)(yk−(yi)i=1n¯)∑k=1n(xk−(xi)i=1n¯)2⋅∑k=1n(yk−(yi)i=1n¯)2corr((x_i)_i=1^n,(y_i)_i=1^n)= _k=1^n(x_k- (x_i)_i=1^n)(y_k- (y_i)_i=1^n) _k=1^n(x_k- (x_i)_i=1^n)^2· _k=1^n(y_k- (y_i)_i=1^n)^2 f~(O)=|corr(([⟨xi,Rhigh⟩∈O∧res(xi)≠Rhigh])i=1n,([p(xi)])i=1n)| f_ F(O)=|corr(([ x_i,R_high ∈ O res(x_i)≠ R_high])_i=1^n,([p(x_i)])_i=1^n)| Here, p is the protected attribute (e.g., race in COMPAS), resres is the ground truth based on facts, and u is the associated risk of each score. We use the Pearson correlation coefficient, though other correlation coefficients could also be applied. Recall that the square brackets [][\,] follow Iverson notation, and the fairness measure is constrained to return values in [0,1][0,1]. 4 Operationalization In this section, we explain how the concepts presented above are operationalized, that is, how abstract ideas are translated into concrete, formal representations that can be implemented and measured. An instance of the AR metamodel provides a formal representation of a fairness scenario =⟨,,,⟩ F= A, R, A_at, R_at . Assuming that the agent and resource attributes are given, the fairness measure still needs to be defined. As illustrated in the previous examples, defining a fairness measure can be complex and error-prone. To address this challenge, we employ the Tiles framework [27] as a means of specifying fairness measures for a given fairness scenario. The purpose of this framework is to improve both the readability and the reliability of fairness measures. To achieve this, we decompose the fairness measure into smaller, composable building blocks. 4.1 Design of the Blocks The design of blocks in Tiles is inspired by the concept of a module in software engineering. Concept 4.1 (Module) A module is a software component characterized by the following properties: (1) (encapsulation) hides internal details, exposing only necessary interfaces; (2) (reusability) can be applied across different systems or projects to reduce redundancy; (3) (interchangeability) can be replaced by other modules with equivalent functionality; (4) (cohesion) is focused on a single, well-defined purpose; (5) (low coupling) minimizes dependencies on unrelated components; (6) (scalability) adapts to future changes with minimal impact; (7) (testability) is designed for independent verification of functionality. Recall that a fairness scenario is a tuple =⟨,,,⟩ F= A, R, A_at, R_at . We assume that R_at contains a function u:→u: R→ M (utility), A_at contains a function q:→q: A→ M (needs), and we define the auxiliary function rO:→r_O: A→ M (accumulates) as in Definition 3.5, which depends on u. The functional notation in Tiles can be represented using a graphical notation, making the pipeline structure visually explicit. 4.2 Graphical Notation One of the key aspects of Tiles is its ability to represent configurations through a graphical notation that clarifies how a configuration operates. A configuration is a formal representation of how blocks are interconnected. Each block, called a tile, can connect with others to define a specific construct. Concept 4.2 (Tile) A tile is a construct that contains a name, a function, an input type, an output type, and contextual information. The contextual information includes the fairness scenario, constants, and auxiliary functions. A tile is represented as βα _α\ name\ _β where α and β are type annotations for the input and output types, respectively, and name denotes the function name. The input type is omitted if the tile represents a constant. A type in Tiles can be: • atomic; • a tuple composed of other types: ⟨α1,…,αn⟩ _1,…, _n ; or • a sequence of a type: (α)(α). The atomic types for fairness scenarios are: a (agent), r (resource), m (quantity or measure), and b (Boolean). Type annotations in Tiles can be used not only to specify the connection between the output of one tile and the input of another, but also to denote input variable names when the tile has parameters. Parametric tiles are particularly useful for defining customized tiles. The Tiles framework provides primitive tiles, as shown in Table 2. When types coincide or can be unified, the tiles can be snapped together. In that case, the most specific type that unifies in denoted in the connection. If some parameters are required by an internal tile and remain constant by the previous ones, they can be denoted altogether following a semicolon (;) after the necessary parameters. Table 2: Definitions and examples of primitive tiles Function Description cross((ai)i=1n,(bj)j=1m)cross((a_i)_i=1^n,(b_j)_j=1^m) (⟨a1,b1⟩CLOSE,( a_1,b_1 , ⟨a1,b2⟩, a_1,b_2 , …,…, ⟨a1,bm⟩, a_1,b_m , ⟨a2,b1⟩, a_2,b_1 , …,…, OPEN⟨an,bm⟩) a_n,b_m ) cross((A,B,C),(1,2,3))cross((A,B,C),(1,2,3)) (⟨A,1⟩CLOSE,( A,1 , ⟨A,2⟩, A,2 , ⟨A,3⟩, A,3 , ⟨B,1⟩, B,1 , ⟨B,2⟩, B,2 , ⟨B,3⟩, B,3 , ⟨C,1⟩, C,1 , ⟨C,2⟩, C,2 , OPEN⟨C,3⟩) C,3 ) zip((ai)i=1n,(bj)j=1m)zip((a_i)_i=1^n,(b_j)_j=1^m) (⟨ai,bi⟩)i=1minn,m( a_i,b_i )_i=1 \n,m\ zip((A,B,C,D),(1,2,3))zip((A,B,C,D),(1,2,3)) (⟨A,1⟩,⟨B,2⟩,⟨C,3⟩)( A,1 , B,2 , C,3 ) applyφ(a)apply_ (a) φ(a) (a) applyx↦x>0(0)apply_x x>0(0) falsefalse bindφ((ai)i=1n)bind_ ((a_i)_i=1^n) φ(a1)||φ(a2)||…||φ(an) (a_1)\ ||\ (a_2)\ ||\ …\ ||\ (a_n) bindx↦(x,x+1)((,,,,,))bind_x (x,x+1)((0,1,7)) (0,1,1,2,7,8)(0,1,1,2,7,8) foldφ(z,(ai)i=1n)fold_ (z,(a_i)_i=1^n) φ(…φ(φ(z,a1),a2)…,an) (… ( (z,a_1),a_2)…,a_n) fold⟨z,x⟩↦z+x(0,(1,2,4,8,16))fold_ z,x z+x(0,(1,2,4,8,16)) 3131 where ⋅||⋅·||· is the concatenation of sequences. Basic auxiliary tiles are also provided, as defined in Table 3. Table 3: Definitions and examples of basic auxiliary tiles Function Description filterφ((ai)i=1n)filter_ ((a_i)_i=1^n) bindfφ((ai)i=1n)bind_f_ ((a_i)_i=1^n), fφ(x)=(x), if φ(x)(), otherwisef_ (x)= cases(x),& if (x)\\ (),& otherwise cases filterx↦even(x)((,,,,,,,,,))filter_x even(x)((1,4,1,4,2)) (4,4,2)(4,4,2) mapφ((ai)i=1n)map_ ((a_i)_i=1^n) bindfφ((ai)i=1n)bind_f_ ((a_i)_i=1^n), fφ(x)=(φ(x))f_ (x)=( (x)) mapx↦2x((,,,,,,,,,))map_x 2x((0,1,1,2,3)) (0,2,2,4,6)(0,2,2,4,6) reverse((ai)i=1n)reverse((a_i)_i=1^n) foldf((ai)i=1n)fold_f((a_i)_i=1^n), f(z,x)=(x)||zf(z,x)=(x)\ ||\ z reverse((,,,,,,,,,))reverse((0,1,1,2,3)) (3,2,1,1,0)(3,2,1,1,0) distinct((ai)i=1n)distinct((a_i)_i=1^n) foldf((ai)i=1n)fold_f((a_i)_i=1^n), f(z,x)=z, if x∈z||(x), otherwisef(z,x)= casesz,& if x∈ z\\ z\ ||\ (x),& otherwise cases distinct((,,,,,,,,,))distinct((A,B,B,A,C)) (A,B,C)(A,B,C) 4.3 Examples Let us now consider some examples of how Tiles operates. Figure 1 illustrates a pipeline for equality. Define φc:×→ _c: M× M→ M by φc(z,x)=z+1 _c(z,x)=z+1. -|()rO|()|() 0φc|= \ all-agent\ |\ _(a)\ map\ r_O\ |\ _(m)\ distinct\ |\ _(m)\ fold\ 0\ using\ _c\ |\ _m\ apply\ m=1\ _b Figure 1: Pipeline for equality. To improve readability, we can introduce the following derived tiles: ()():=()rO(), $ _(a)\ accumulates\ _(m)$:= $ _(a)\ map\ r_O\ _(m)$\ , (α):=(α) 0φc, $ _(α)\ length\ _m$:= $ _(α)\ fold\ 0\ using\ _c\ _m$\ , and the following composite tile: ()-:=()|()|=. $ _(m)\ all-equal\ _b$:= $ \ _(m)\ distinct\ |\ _(m)\ length\ |\ _m\ apply\ m=1\ _b$\ . This yields Figure 2, which expresses the same pipeline in a more concise and readable form. -|()|()- \ all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ all-equal\ _b Figure 2: Pipeline for equality using derived and composite tiles. Table 4 presents a summary of customized tiles used in the examples. Table 4: Customized tiles based on primitive and basic auxiliary tiles Tile Definition ()() _(a)\ accumulates\ _(m) := ()rO()() _(a)\ map\ r_O(a)\ _(m) ()() _(a)\ needs\ _(m) := ()q()() _(a)\ map\ q(a)\ _(m) (α)φ(xα) _(α)\ sum\ ( x_α)\ _m := (α) 0⟨z,xα⟩↦z+φ(xα) _(α)\ fold\ 0\ using\ z, x_α z+ ( x_α)\ _m where φ:α→ :α→ M, and xα∈αx_α∈α () _(m)\ sum\ _m_0 := () _(m)\ sum\ m\ _m_0 (α) _(α)\ length\ _m := (α) 1 _(α)\ sum\ 1\ _m ()-() _(m)\ all-equal\ _(b) := ()|()|≤ _(m)\ distinct\ |\ _(m)\ length\ |\ _m\ apply\ m≤ 1\ _b (α)φ(xα) _(α)\ exists\ ( x_α)\ _b := (α)false⟨z,xα⟩↦z∨φ(xα) _(α)\ fold\ false\ using\ z, x_α z ( x_α)\ _b where φ:α→ :α , and xα∈αx_α∈α (α)φ(xα) _(α)\ forall\ ( x_α)\ _b := (α)true⟨z,xα⟩↦z∧φ(xα) _(α)\ fold\ true\ using\ z, x_α z ( x_α)\ _b where φ:α→ :α , and xα∈αx_α∈α (),()-- _(m_0),(m_1)\ all-at-least\ _b := (),()|(⟨,⟩)(≥) _(m_0),(m_1)\ zip\ |\ _( m_0,m_1 )\ forall\ (m_0≥ m_1)\ _b It is possible to design components using Tiles. In that case, a parameter can be given to the component. Figure 3 contains the definition of a component to compute rO()r_O( a) for an agent a by only using the primitive property receives a receives r, for agent a and a resource r. Notice that, although all-resource does not need a, we use the semicolon notation to denote that the tile passes the parameter on to filter, which needs it. \ _a\ ;-|(); receives |()u()|() \ _;a\ all-resource\ |\ _(r);a\ filter\ a receives r\ |\ _(r)\ map\ u(r)\ |\ _(m_0)\ sum\ _m Figure 3: Component that computes rO()r_O( a), where the agent a is a parameter for the component. We represent the agents A as a sorted sequence of identifiers A≺A_ , denoted by all-agent. We define accumulates and needs by applying rOr_O and q, respectively, to each element of the sequence. Additionally, we define all-equal as the result of checking whether all elements in the sequence are equal, and all-at-least as the result of checking, for each pair in the sequence, whether its first component is greater than or equal to the second. Equality can then be expressed through the following pipeline: f~eqa(O)=all-equal(accumulates(all-agent)) f_ F_eqa(O)= all-equal( accumulates( all-agent)) (7) Thus, f~eqa f_ F_eqa in Definition 3.5 is equivalent to f~eqa f_ F_eqa given in (7). Proposition 4.1. (Correctness of the Equality Pipeline) Let =⟨,,,⟩ F= A, R, A_at, R_at be a fairness scenario, f~eqa f_ F_eqa defined as in Definition 3.5, and f~eqa′ f_ F_eqa defined as in (7). Then, for every outcome O, f~eqa(O)=1⟺f~eqa′(O)=1. f_ F_eqa(O)=1 f_ F_eqa (O)=1\ . Proof 4.2. Expanding f~eqa′(O) f_ F_eqa (O) in (7) yields: [∀m,m′∈(rO(a))a∈≺(m=m′)].[∀ m,m ∈(r_O(a))_a∈ A_ \ (m=m )]\ . Since A is non-empty and finite, a∈a∈ A iff a∈≺a∈ A_ . In particular, the sequence (rO(a))a∈≺(r_O(a))_a∈ A_ contains, for each agent a, the value rO(a)r_O(a). Thus, for each value m, m∈(rO(a))a∈≺m∈(r_O(a))_a∈ A_ iff m∈rO(a)∣a∈m∈\r_O(a) a∈ A\. Therefore, f~eqa′(O) f_ F_eqa (O) holds iff ∀m,m′∈rO(a)∣a∈(m=m′).∀ m,m ∈\r_O(a) a∈ A\\ (m=m )\ . This is equivalent to ∀a,a′∈(rO(a)=rO(a′)),∀ a,a ∈ A\ (r_O(a)=r_O(a ))\ , (8) which is precisely the definition of f~eqa(O) f_ F_eqa(O). We define equity with the following pipeline: f~eqi(O)=all-at-least(accumulates(all-agent),needs(all-agent)) f_ F_eqi(O)= all-at-least( accumulates( all-agent), needs( all-agent)) (9) Observe that f~eqi f_ F_eqi in Definition 3.5 is equivalent to f~eqi f_ F_eqi given in (9). Proposition 4.3. (Correctness of the Equity Pipeline) Let =⟨,,,⟩ F= A, R, A_at, R_at be a fairness scenario, f~eqi f_ F_eqi defined as in Definition 3.5, and f~eqi′ f_ F_eqi defined as in (9). Then, for every outcome O, f~eqi(O)=1⟺f~eqi′(O)=1. f_ F_eqi(O)=1 f_ F_eqi (O)=1\ . Proof 4.4. For the case of equity, let X=(rO(a))a∈≺,Y=(q(a))a∈≺.X=(r_O(a))_a∈ A_ , Y=(q(a))_a∈ A_ . By construction, X and Y contain as many elements as A, and |X|=|Y||X|=|Y|. Expanding f~eqi′(O) f_ F_eqi (O) gives: [∀i∈ℕ0, 1≤i≤|X|⇒i-th elem. (rO(a))a∈≺≥i-th elem. (q(a))a∈≺].[∀ i _0,\ 1≤ i≤|X|\ \ $i$-th elem. (r_O(a))_a∈ A_ ≥$i$-th elem. (q(a))_a∈ A_ ]\ . This condition holds iff ∀a∈(rO(a)≥q(a)),∀ a∈ A\ (r_O(a)≥ q(a)), which is precisely the definition of f~eqi(O) f_ F_eqi(O) in Definition 3.5. 4.4 Implementation The Tiles framework is implemented as an open-source project1010 10 https://github.com/julianmendez/tiles written in the Soda language [31], an open-source functional language1111 11 https://github.com/julianmendez/soda. Code written in Soda can be formally verified using the Lean [25] proof assistant and seamlessly integrated into the Java Virtual Machine ecosystem, enabling efficient execution [28]. The Tiles implementation in Soda aims to follow the pipeline notation as closely as possible, with each tile’s source code directly accessible. The framework includes detailed components that ensure the correct construction of pipelines. These components are particularly focused on zipping and unzipping sequences, as well as creating and projecting tuples. Since Soda is statically typed and Tiles is a typed framework, type consistency across the entire pipeline can be verified at compile time. 4.5 Concurrent Execution One of the advantages of the framework is its support for concurrent execution. However, there is an important caveat: the framework cannot guarantee preserving order, complexity, and concurrency at the same time. The reason is that the underlying data structures cannot maintain order during concurrent execution. Technically, it is possible to process a sequence by launching multiple threads on different cores, but once those threads finish, their results must be collected back into a sequence. For efficiency, this sequence is constructed in the order in which the threads finish, which may differ from the original order. A workaround is to pair each element with its original index before processing. After collecting the results, the sequence can then be sorted by these indices. However, this additional step may affect the overall complexity. Table 5 analyzes the primitive tiles and their potential for independent evaluation of elements within a sequence. Table 5: Primitive tiles and concurrent evaluation Function Independent Evaluation cross((ai)i=1n,(bj)j=1m)cross((a_i)_i=1^n,(b_j)_j=1^m) Yes, each of the n⋅mn· m pairs can be constructed independently. zip((ai)i=1n,(bj)j=1m)zip((a_i)_i=1^n,(b_j)_j=1^m) Yes, each of the minn,m \n,m\ pairs can be constructed independently. applyφ(a)apply_ (a) Yes, as it applies to a single element only. bindφ((ai)i=1n)bind_ ((a_i)_i=1^n) Yes, each element can be mapped independently. foldφ(z,(ai)i=1n)fold_ (z,(a_i)_i=1^n) No, evaluation of each element depends on the results of previous ones. 5 Discussion This section informally discusses the capabilities and limitations of the AR metamodel and the Tiles framework. The framework is designed around the concept of flow, where data moves through a pipeline. This pipeline connects tiles, forming a directed acyclic graph with a single start and end point. We do not provide an effective algorithm for constructing pipelines from the first-order formula defined by the fairness measure, since this is not possible in the general case. In our metamodel, we exclude functions that operate on multiple agents, multiple resources, or combinations thereof. 5.1 Expressiveness The AR metamodel can represent a wide range of fairness scenarios, though not all possible ones. We specifically focus on scenarios involving attributes of agents and resources. In particular, the metamodel supports the combination of multiple agents and resources, as demonstrated in Example 3.12, where an agent or resource serves as the first parameter of a function that returns a sequence. 5.2 Decidability and Time Complexity Pipelines built within the Tiles framework are decidable provided that their tiles are decidable. When contracts between tiles are respected, undefined values cannot arise. Regarding time complexity, the pipeline structure guarantees the absence of loops in the diagram, ensuring that no tile is evaluated more than once. The worst-case complexity of a pipeline is determined by the maximum complexity of its individual tiles. 5.3 Applicability The Tiles framework has broad applicability beyond the fairness domain. As a software engineering tool, it can handle any scenario involving finite, iterable sets of identifiers and attributes. The type system in Tiles is flexible and includes sets of identifiers, quantities, Boolean values, tuples, and sequences. That said, the Tiles framework is not intended to be applied at every level of a scenario. The framework describes connections and processes to provide clearer explanations of complex formulas. However, when formulas are sufficiently clear, they should be used directly instead of pipelines. The Tiles framework is primarily intended for modeling, but the generated pipelines are naturally amenable to parallel execution. This is because pipelines are typically designed to process multiple agents, resources, or quantities simultaneously. Nevertheless, designing pipelines for parallel execution requires expertise, as it can be effort-intensive. 5.4 Limitations A clear limitation of our approach lies in the generic nature of the metamodel. To address this, we introduced Tiles as a layer of modular building blocks. Although Tiles is conceptually elegant, it may, like other declarative notations, present challenges in terms of readability. Studying (and potentially improving) the readability of Tiles is therefore an important direction for future work. For example, one could instantiate fairness measures and scenarios in several languages and systematically compare their comprehensibility, or conduct perceived usefulness studies analogous to [20], which empirically compares several declarative modeling languages. Furthermore, this work does not address the modeling of specific real-world problems. Instead, we either use toy examples to facilitate understanding, or rely on generally applicable measures, for instance, to showcase broad applicability at the conceptual level or to highlight fundamental relationships (such as strict equity versus equality). Future work could evaluate our metamodel and its operationalization in concrete case studies, where real-world users face fairness modeling and analysis challenges. 6 Conclusion We introduced a metamodel of fairness and demonstrated its application through concrete examples. The metamodel provides a structured approach to understanding and evaluating fairness across diverse scenarios. By first identifying agents, resources, and their relevant attributes, users can construct nuanced fairness measures and instantiate scenarios from them. We presented examples illustrating central fairness concepts such as equality, equity, group fairness, and individual fairness, as well as continuous measures, such as the Gini and Theil indices. We explored applications of the metamodel ranging from economics and game theory (e.g., preferences and envy-freeness) to computer networks (e.g., Jain’s fairness index) and examined a real-world case involving Child Care Subsidy in Australia. In addition to the examples, we proposed a method for operationalizing the metamodel that simplifies formal notation. The graphical and conceptual representation is supported by a modular design, and the resulting notation for defining functions can be applied across multiple domains. Moreover, we provided an implementation of this representation through the Tiles framework. Looking ahead, the fairness framework can be extended and refined through applications in real-world scenarios. In this context, it is essential to develop further tooling that simplifies practical modeling and supports broader adoption of metamodel-based fairness analysis. Acknowledgements This work was partially supported by the Wallenberg AI, Autonomous Systems and Software Program (WASP), funded by the Knut and Alice Wallenberg Foundation. References [1] A. Albarghouthi, L. D’Antoni, S. Drews, and A. V. Nori (2017) FairSquare: probabilistic verification of program fairness. Proc. ACM Program. Lang. 1 (OOPSLA). Note: https://doi.org/10.1145/3133904 External Links: Link, Document Cited by: §2. [2] A. Albarghouthi and S. Vinitsky (2019) Fairness-aware programming. In Proceedings of the Conference on Fairness, Accountability, and Transparency, FAT* ’19, New York, NY, USA, p. 211–219. Note: https://doi.org/10.1145/3287560.3287588 External Links: ISBN 9781450361255, Link, Document Cited by: §2. [3] A. Aler Tubella, F. Barsotti, R. G. Koçer, and J. A. Mendez (2022) Ethical implications of fairness interventions: what might be hidden behind engineering choices?. Ethics and Information Technology 24 (1), p. 12. External Links: ISSN 1572-8439, Document, Link Cited by: §1, §2. [4] A. Aler Tubella, D. Coelho Mollo, A. Dahlgren Lindström, H. Devinney, V. Dignum, P. Ericson, A. Jonsson, T. Kampik, T. Lenaerts, J. A. Mendez, and J. C. Nieves (2023) ACROCPoLis: A Descriptive Framework for Making Sense of Fairness. In Proceedings of the 2023 ACM Conference on Fairness, Accountability, and Transparency, FAccT ’23, New York, NY, USA, p. 1014–1025. External Links: ISBN 9798400701924, Link, Document Cited by: §2. [5] G. Amanatidis, G. Birmpas, and E. Markakis (2018) Comparing approximate relaxations of envy-freeness. External Links: 1806.03114, Document, Link Cited by: Example 3.12. [6] R. K. E. Bellamy, K. Dey, M. Hind, S. C. Hoffman, S. Houde, K. Kannan, P. Lohia, J. Martino, S. Mehta, A. Mojsilovic, S. Nagar, K. N. Ramamurthy, J. T. Richards, D. Saha, P. Sattigeri, M. Singh, K. R. Varshney, and Y. Zhang (2019) AI Fairness 360: An extensible toolkit for detecting and mitigating algorithmic bias. IBM J. Res. Dev. 63 (4/5), p. 4:1–4:15. External Links: Link, Document Cited by: §2. [7] R. Binns (2019) On the apparent conflict between individual and group fairness. External Links: 1912.06883, Link, Document Cited by: §2. [8] R. Binns (2020) On the apparent conflict between individual and group fairness. In Proceedings of the 2020 Conference on Fairness, Accountability, and Transparency, FAT* ’20, New York, NY, USA, p. 514–524. External Links: ISBN 9781450369367, Link, Document Cited by: §3.4. [9] S. Bird, M. Dudík, R. Edgar, B. Horn, R. Lutz, V. Milan, M. Sameki, H. Wallach, and K. Walker (2020) Fairlearn: A toolkit for assessing and improving fairness in AI. Microsoft, Tech. Rep. MSR-TR-2020-32. Cited by: §2. [10] A. Chouldechova (2017) Fair prediction with disparate impact: a study of bias in recidivism prediction instruments. Big Data 5 (2), p. 153–163. Note: PMID: 28632438 External Links: Document, Link, https://doi.org/10.1089/big.2016.0047 Cited by: §2. [11] P. Conceicao and P. M. Ferreira (2000) The young person’s guide to the theil index: suggesting intuitive interpretations and exploring analytical applications. SSRN Electronic Journal. External Links: Document, ISSN 1556-5068 Cited by: item 3, Example 3.22. [12] S. Corbett-Davies and S. Goel (2018) The measure and mismeasure of fairness: A critical review of fair machine learning. CoRR abs/1808.00023. External Links: Link, 1808.00023 Cited by: §2. [13] C. Dagum (1997) Decomposition and interpretation of gini and the generalized entropy inequality measures. Statistica 57 (3), p. 295–308. External Links: Link, Document Cited by: §3.6. [14] C. Dwork, M. Hardt, T. Pitassi, O. Reingold, and R. S. Zemel (2012) Fairness through awareness. In Innovations in Theoretical Computer Science 2012, Cambridge, MA, USA, January 8-10, 2012, S. Goldwasser (Ed.), p. 214–226. External Links: Link, Document Cited by: §2. [15] C. Dwork, M. Hardt, T. Pitassi, O. Reingold, and R. Zemel (2012) Fairness through awareness. In Proceedings of the 3rd Innovations in Theoretical Computer Science Conference, ITCS ’12, New York, NY, USA, p. 214–226. Note: https://doi.org/10.1145/2090236.2090255 External Links: ISBN 9781450311151, Link, Document Cited by: §2. [16] W. Fleisher (2021) What’s Fair about Individual Fairness?. In Proceedings of the 2021 AAAI/ACM Conference on AI, Ethics, and Society, AIES ’21, New York, NY, USA, p. 480–490. External Links: ISBN 9781450384735, Link, Document Cited by: §2. [17] D. K. Foley (1966) Resource allocation and the public sector. , Yale Economics Essays. Cited by: Example 3.12. [18] M. Hardt, E. Price, and N. Srebro (2016) Equality of opportunity in supervised learning. In Advances in Neural Information Processing Systems, p. 3323–3331. External Links: 1610.02413, ISSN 10495258 Cited by: §2. [19] R. K. Jain, D. W. Chiu, and W. R. Hawe (1984) A Quantitative Measure of Fairness and Discrimination for Resource Allocation in Shared Computer Systems. DEC Research Report TR-301. Cited by: §3.6. [20] A. Jalali (2023) Evaluating user acceptance of knowledge-intensive business process modeling languages. Softw. Syst. Model. 22 (6), p. 1803–1826. External Links: Link, Document Cited by: §5.4. [21] M. Joseph, M. Kearns, J. H. Morgenstern, and A. Roth (2016) Fairness in Learning: Classic and Contextual Bandits. In Advances in Neural Information Processing Systems, D. Lee, M. Sugiyama, U. Luxburg, I. Guyon, and R. Garnett (Eds.), NIPS, Vol. 29, p. 325–333. External Links: Link Cited by: §2. [22] M. Kearns, S. Neel, A. Roth, and Z. S. Wu (2018) Preventing fairness gerrymandering: auditing and learning for subgroup fairness. In International Conference on Machine Learning, p. 2564–2572. Cited by: §2. [23] P. Kerkhoven, V. Dignum, and M. Bhuyan (2025) Assessing machine learning fairness with multiple contextual norms. In The 37th Benelux Conference on Artificial Intelligence and the 34th Belgian Dutch Conference on Machine Learning, p. 1–18. External Links: Link Cited by: §3.6. [24] J. Larson, S. Mattu, L. Kirchner, and J. Angwin (2016) How We Analyzed the COMPAS Recidivism Algorithm. ProPublica. External Links: Link Cited by: Example 3.25. [25] Leonardo de Moura - Microsoft Research (2013) Lean. External Links: Link Cited by: §4.4. [26] Z. Li, S. Liu, X. Lu, B. Tao, and Y. Tao (2024) A complete landscape for the price of envy-freeness. External Links: 2401.01516, Document, Link Cited by: Example 3.12. [27] J. A. Mendez, T. Kampik, A. Aler Tubella, and V. Dignum (2024) A Clearer View on Fairness: Visual and Formal Representation for Comparative Analysis. In 14th Scandinavian Conference on Artificial Intelligence, SCAI 2024, F. Westphal, E. Peretz-Andersson, M. Riveiro, K. Bach, and F. Heintz (Eds.), p. 112–120. Note: https://doi.org/10.3384/ecp208013 External Links: Document, Link Cited by: §1, §1, §2, §4. [28] J. A. Mendez and T. Kampik (2025) Can Proof Assistants Verify Multi-agent Systems?. In Multi-Agent Systems, R. Collier, A. Ricci, V. Nallur, S. Burattini, and A. Omicini (Eds.), Cham, p. 323–339. Note: https://doi.org/10.1007/978-3-031-93930-3_19 External Links: Document, Link Cited by: §4.4. [29] J. A. Mendez and T. Kampik (2025) Specification, Application, and Operationalization of a Metamodel of Fairness. In Logics for New-Generation AI 2025, B. Liao, A. Rotolo, L. van der Torre, and L. Yu (Eds.), Logics for New-Generation AI, Vol. 5, p. 163–180. External Links: ISBN 978-1-84890-495-8, Link Cited by: §1. [30] J. A. Mendez and T. Kampik (2025) Specification, Application, and Operationalization of a Metamodel of Fairness. External Links: 2511.11144, Link, Document Cited by: §1. [31] J. A. Mendez (2023) Soda: An Object-Oriented Functional Language for Specifying Human-Centered Problems. Note: https://doi.org/10.48550/arXiv.2310.01961 External Links: 2310.01961, Document, Link Cited by: §4.4. [32] S. Mussard, F. Seyte, and M. Terraza (2003) Decomposition of gini and the generalized entropy inequality measures. Economics Bulletin 4 (7), p. 1–6. Note: Submitted: January 27, 2003. Accepted: January 27, 2003. External Links: Link Cited by: §3.6. [33] M. J. Osborne and A. Rubinstein (2020) Models in microeconomic theory. Open Book Publishers. External Links: Document, Link Cited by: Definition 3.11. [34] Q. Ramadan, M. Konersmann, A. S. Ahmadian, J. Jürjens, and S. Staab (2025) MBFair: a model-based verification methodology for detecting violations of individual fairness. Software and Systems Modeling 24 (1), p. 111–136. External Links: Document, Link, ISSN 1619-1374 Cited by: §2. [35] M. Richter and A. Rubinstein (2020) The permissible and the forbidden. Journal of Economic Theory 188, p. 105042. External Links: ISSN 0022-0531, Document, Link Cited by: Example 3.12. [36] G. A. Tsekouras and C. Tsallis (2005) Generalized entropy arising from a distribution of q indices. Phys. Rev. E 71, p. 046144. External Links: Document, Link Cited by: §3.6. [37] M. Weske (2019) Business process management - concepts, languages, architectures. 3 edition, Springer Berlin, Heidelberg. External Links: Document, Link, ISBN 978-3-662-59431-5 Cited by: §1. [38] J. Wexler, M. Pushkarna, T. Bolukbasi, M. Wattenberg, F. B. Viégas, and J. Wilson (2020) The What-If Tool: Interactive Probing of Machine Learning Models. IEEE Trans. Vis. Comput. Graph. 26 (1), p. 56–65. External Links: Link, Document Cited by: §2. Appendix A Appendix In this appendix, we show examples of configurations for different fairness measures presented in this paper. -|()|()|()|= \ all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ distinct\ |\ _(m)\ length\ |\ _m\ apply\ m=1\ _b Figure 4: Pipeline for equality for a Child Care Subsidy using Tiles. This uses generic tiles. -|()() \ all-agent\ |\ _(a)\ accumulates\ _(m_0)-|()() \ all-agent\ |\ _(a)\ needs\ _(m_1)(),()|(⟨,⟩)(≥) _(m_0),(m_1)\ zip\ |\ _( m_0,m_1 )\ forall\ (m_0≥ m_1)\ _b Figure 5: Pipeline for equity for a Child Care Subsidy using Tiles. This diagram uses filter, length, and apply. -() all-agent\ _(a)-() all-resource\ _(r)(),()|(⟨,⟩)p()∧ receives |(⟨,⟩) _(a),(r)\ cross\ |\ _( a,r )\ filter\ p(a) a receives r\ |\ _( a,r )\ length\ _m_0-|()p()|() all-agent\ |\ _(a)\ filter\ p(a)\ |\ _(a)\ length\ _m_1, _m_0,m_1\ apply\ m_0m_1\ _m_2-() all-agent\ _(a)-() all-resource\ _(r)(),()|(⟨,⟩)¬p()∧ receives |(⟨,⟩) _(a),(r)\ cross\ |\ _( a,r )\ filter\ p(a) a receives r\ |\ _( a,r )\ length\ _m_0-|()¬p()|() all-agent\ |\ _(a)\ filter\ p(a)\ |\ _(a)\ length\ _m_1, _m_0,m_1\ apply\ m_0m_1\ _m_3,≃ε _m_2,m_3\ apply\ m_2 _ m_3\ _b Figure 6: Pipeline for group fairness with respect to a protected attribute p. Figure 7: Pipeline for individual fairness, considering an essential attribute q. -|()|()| all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ sum\ |\ _m\ apply\ m^2\ _m_0-|()|()|() all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ map\ m^2\ |\ _(m)\ sum\ _m_1-|() all-agent\ |\ _(a)\ length\ _m_2,,⋅ _m_0,m_1,m_2\ apply\ m_0m_2· m_1\ _m Figure 8: Pipeline for Jain’s index. -|()() all-agent\ |\ _(a)\ accumulates\ _(m_0)-|()() all-agent\ |\ _(a)\ accumulates\ _(m_1)(),()|(⟨,⟩)|−||() \ _(m_0),(m_1)\ cross\ |\ _( m_0,m_1 )\ map\ |m_0-m_1|\ |\ _(m_2)\ sum\ _m_3-|()|() all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ sum\ _m_4-|() all-agent\ |\ _(a)\ length\ _m_5,, 1−⋅ _m_3,m_4,m_5\ apply\ 1- m_32· m_5· m_4\ _m Figure 9: Pipeline for the complement of the Gini index. Unlike the Gini index, 1 represents complete fairness and 0 represents complete unfairness. -|()|() all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ sum\ _m_1-|() all-agent\ |\ _(a)\ length\ _m_2-|()() all-agent\ |\ _(a)\ accumulates\ _(m_0)();,⋅ln(⋅)|();|,(−) \ _(m_0);m_1,m_2\ map\ m_0· m_2m_1· ( m_0· m_2m_1)\ |\ _(m_3);m_2\ sum\ _m_4\ |\ _m_4,m_2\ apply\ (1- m_4m_2)\ _m Figure 10: Pipeline for the complement of the Theil index, where 1 represents complete fairness and 0 represents complete unfairness. Notice the notation with semicolon in the parameters. The parameters m_1 and m_2 are constant with respect to the map tile, which uses them. The parameter m_2 is not used by the sum tile, but it is passed to the following tile. In both cases, the parameters after the semicolon are not part of the basic parameters of the tiles, but remain constant, regardless of whether they are used by the tile. -|()[⟨,Rhigh⟩∈O∧res()≠Rhigh]() all-agent\ |\ _(a)\ map\ [ a,R_high ∈ O res( a)≠ R_high]\ _(m_0)-|()[p()]() all-agent\ |\ _(a)\ map\ [ p(a)]\ _(m_1)(),()||| _(m_0),(m_1)\ correlation\ |\ _m_2\ apply\ |m_2|\ _m Figure 11: Pipeline for the detection of false positives in a prediction system, where predpred is the prediction, resres is the actual fact, RhighR_high represents the value to detect positiveness, and p is a protected attribute. (),() \ _(m_0),(m_1)\ (),();;|(⟨,⟩);;(−)⋅(−) \ _(m_0),(m_1);m_2;m_3\ zip\ \ |\ _( m_0,m_1 );m_2;m_3\ sum\ (m_0-m_2)·(m_1-m_3)\ _m_4() \ _(m_0)\ average\ _m_2();(−) \ _(m_0);m_2\ sum\ (m_0-m_2)^2\ _m_5() \ _(m_1)\ average\ _m_3();(−) \ _(m_1);m_3\ sum\ (m_1-m_3)^2\ _m_6,,(⋅) \ _m_4,m_5,m_6\ apply\ ( m_4 m_5· m_6)\ _m Figure 12: Component that computes the correlation, where the sequences () and () (m_0) and (m_1) are the parameters of the component. The averages of () and () (m_0) and (m_1) are stored in m_2 and m_3 respectively, which are computed once but used twice. The zip tile does not need m_2 and m_3, but it accepts them with the semicolon notation to pass them on to the sum tile. -|()|()= \ all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ forall\ m=0\ _b Figure 13: Pipeline for no subsidy. The tile on the left provides all agents. The tile in the middle computes how much resource each agent received. The tile on the right checks that all resources are equal to 0. -|()() all-agent\ |\ _(a)\ accumulates\ _(m_0)-|()children()() all-agent\ |\ _(a)\ map\ children(a)\ _(m_1)(),()|(⟨,⟩)|()- _(m_0),(m_1)\ zip\ |\ _( m_0,m_1 )\ map\ m_0m_1\ |\ _(m)\ all-equal\ _b Figure 14: Representation of “per child” using Tiles. The tile on the left provides agents, which are divided in two branches. The upper branch computes how much each agent (a family) has received and the lower branch how many children the family has. Both values are zipped back to compute the division. Note that we assume that each family has at least a child, but otherwise, if the number of children is 0, the division would be computed as undefined. -|()|()- \ all-agent\ |\ _(a)\ accumulates\ |\ _(m)\ all-equal\ _b Figure 15: Representation of “per family” using Tiles. This is equivalent to a standard equality pipeline where each agent receives exactly the same amount of resource. -|()adults()=|()|()- all-agent\ |\ _(a)\ filter\ adults(a)=1\ |\ _(a)\ accumulates\ |\ _(m)\ all-equal\ _b_0-|()adults()>|()|()= all-agent\ |\ _(a)\ filter\ adults(a)>1\ |\ _(a)\ accumulates\ |\ _(m)\ forall\ m=0\ _b_1,∧ _b_0,b_1\ apply\ b_0 b_1\ _b Figure 16: Representation of “single guardian” using Tiles. This pipeline has two main branches. The upper branch accepts only families with one adult, i.e., single-parent/guardian families. The lower branch accepts all remaining families. It is worth noting that the sequences in both branches may have different number of elements and cannot be zipped back. On the other hand, the Boolean computation is combined with the ‘and’ tile, on the right.