eflint a dsl for testing normative specifications
play

eFLINT - A DSL for Testing Normative Specifications L. Thomas van - PowerPoint PPT Presentation

eFLINT - A DSL for Testing Normative Specifications L. Thomas van Binsbergen Centrum Wiskunde & Informatica 22 November, 2019 People UvA and more CWI Robert van Doesburg Tom van Engers Marc Stevens Lu-Chi Liu Tijs van der Storm


  1. eFLINT - A DSL for Testing Normative Specifications L. Thomas van Binsbergen Centrum Wiskunde & Informatica 22 November, 2019

  2. People UvA and more CWI Robert van Doesburg Tom van Engers Marc Stevens Lu-Chi Liu Tijs van der Storm Giovanni Sileno Thomas van Binsbergen

  3. People Policy-CAD UvA and more CWI Robert van Doesburg Tom van Engers Marc Stevens Lu-Chi Liu Tijs van der Storm Giovanni Sileno Thomas van Binsbergen

  4. People SSPDDP UvA and more CWI Robert van Doesburg Tom van Engers Marc Stevens Lu-Chi Liu Tijs van der Storm Giovanni Sileno Thomas van Binsbergen

  5. Norms - Philosophy/Sociology Normative sentences are “ought-to” types of statements

  6. Norms - Philosophy/Sociology Normative sentences are “ought-to” types of statements Examples: legal norms - social norms

  7. Norms - Philosophy/Sociology Normative sentences are “ought-to” types of statements Examples: legal norms - social norms As a resident of The Netherlands, you must have health insurance

  8. Norms - Philosophy/Sociology Normative sentences are “ought-to” types of statements Examples: legal norms - social norms As a resident of The Netherlands, you must have health insurance CWI’s SWAT team has lunch together at noon

  9. Norms - Philosophy/Sociology Normative sentences are “ought-to” types of statements Examples: legal norms - social norms As a resident of The Netherlands, you must have health insurance CWI’s SWAT team has lunch together at noon A player cannot score from an offside position

  10. Norms - Philosophy/Sociology Normative sentences are “ought-to” types of statements Examples: legal norms - social norms As a resident of The Netherlands, you must have health insurance CWI’s SWAT team has lunch together at noon A player cannot score from an offside position Deontic Potestative duties, obligations powers, actions permissions liabilities

  11. Analyzing legal cases physical reality institutional reality understanding of the law sources of law interpretation assessment qualification legal narrative, evidence actions, observations

  12. Interpreting normative sources What does the result of interpretation look like?

  13. Interpreting normative sources What does the result of interpretation look like? How do we write down an interpretation formally?

  14. Hohfeld’s fundamental legal conceptions

  15. Hohfeld’s fundamental legal conceptions fundamental relation: duty-claim between duty holder and claimant

  16. Hohfeld’s fundamental legal conceptions fundamental relation: duty-claim between duty holder and claimant

  17. Hohfeld’s fundamental legal conceptions fundamental relation: power-liability fundamental relation: duty-claim between actor and recipient between duty holder and claimant

  18. Hohfeld’s fundamental legal conceptions fundamental relation: power-liability fundamental relation: duty-claim between actor and recipient between duty holder and claimant What does the result of interpretation look like?

  19. Hohfeld’s fundamental legal conceptions fundamental relation: power-liability fundamental relation: duty-claim between actor and recipient between duty holder and claimant What does the result of interpretation look like? How do we write down an interpretation formally?

  20. Formal Language for the Interpretation of Norms (FLINT) Robert van Doesburg / Tijs van der Storm / eFLINT Commonalities Judgements characterize the relevant sub-set of the world certain facts are postulated (to hold true or false) other facts are derived (from other judgements) Transition rules determine the availability of actions and their effects

  21. Formal Language for the Interpretation of Norms (FLINT) Robert van Doesburg / Tijs van der Storm / eFLINT Commonalities Judgements characterize the relevant sub-set of the world certain facts are postulated (to hold true or false) other facts are derived (from other judgements) Transition rules determine the availability of actions and their effects Challenges Language design: appeal, scope, fit-for-purpose ... Policy design: consistency, composition, qualification ... Policy analysis: exploration, testing, verification, reasoning, planning ... System compliance: testing, verification, “by construction” ...

  22. Language design - overview 1 World: values, types, expressions 2 Norms: duties, acts, transitions 3 Pragmatics: refinement, scripts, testing

  23. Facts Fact-type declarations associate a type with a fact identifier: 1 Fact c i t i z e n 2 Fact candidate I d e n t i f i e d by Atom 3 Fact a d m i n i s t r a t o r I d e n t i f i e d by Atom 4 Fact v o t e r I d e n t i f i e d by c i t i z e n 5 Fact winner I d e n t i f i e d by candidate 6 Fact vote I d e n t i f i e d by ( v o t e r ∗ candidate )

  24. Type expressions Types are essentially record-types: x ∈ ::= vars . . . s ∈ ::= atoms . . . i ∈ ::= Z . . . τ ∈ ::= types atoms | atom set ( s 1 , . . . , s n ) | Z | int set ( i 1 , . . . , i n ) | fields ( x 1 , . . . , x n ) • Field names are variables (possibly decorated fact identifiers)

  25. Instances 1 A l i c e 2 7 3 4 A l i c e : c i t i z e n 5 Chloe : candidate 6 Admin : a d m i n i s t r a t o r 7 8 ( A l i c e : c i t i z e n ) : v o t e r 9 10 (( A l i c e : c i t i z e n ) : voter , Chloe : candidate ) : vote example instances

  26. Instances 1 A l i c e 2 7 3 4 A l i c e : c i t i z e n 5 Chloe : candidate 6 Admin : a d m i n i s t r a t o r 7 8 ( A l i c e : c i t i z e n ) : v o t e r 9 10 (( A l i c e : c i t i z e n ) : voter , Chloe : candidate ) : vote example instances The state of the world at any particular moment is a set of instances σ , containing those instances that hold true at that moment

  27. Expressions • Expressions evaluate to atoms, integers, Booleans or instances of fact-types 1 c i t i z e n 2 c i t i z e n ( A l i c e ) 3 4 v o t e r ( c i t i z e n ( A l i c e ) ) 5 v o t e r ( A l i c e ) 6 v o t e r ( c i t i z e n = c i t i z e n ( A l i c e ) ) 7 8 vote ( v o t e r ( A l i c e ) , Chloe ) 9 vote ( v o t e r = v o t e r ( A l i c e ) , candidate = Chloe ) 10 vote ( candidate = Chloe , v o t e r = v o t e r ( A l i c e ) ) 11 12 vote ( v o t e r = v o t e r ( A l i c e ) ) 13 vote ( candidate = candidate , v o t e r = v o t e r ( A l i c e ) ) 14 vote ( ) variables and constructors

  28. Operators 1 Holds ( v o t e r ( A l i c e ) ) 2 3 vote [ v o t e r ] 4 vote [ candidate ] 5 6 vote [ candidate ] When Holds ( vote ) 7 vote [ candidate ] When vote operators

  29. Quantifiers and aggregators Quantifiers bind variables to all instances of the variable’s type: 1 ( E x i s t s candidate : vote ( v o t e r ( A l i c e ) , candidate ) ) 2 3 ( F o r a l l c i t i z e n : vote ( v o t e r ( c i t i z e n ) , Chloe ) ) Foreach can only be used in combination with an aggregator : 1 Count ( Foreach vote : vote When Holds ( vote ) && vote [ candidate ] = candidate )

  30. Derived facts Derivation expression as a predicate (type-components are bound): 1 Fact has voted I d e n t i f i e d by v o t e r 2 Holds when ( E x i s t s candidate : vote ( voter , candidate ) ) 1 P r e d i c a t e vote concluded When ( E x i s t s candidate : winner ( candidate ) ) 2 P r e d i c a t e v o t e r s done When ( F o r a l l c i t i z e n : ! v o t e r ( ) | | has voted ( v o t e r ( ) ) )

  31. Derived facts Derivation expression as a predicate (type-components are bound): 1 Fact has voted I d e n t i f i e d by v o t e r 2 Holds when ( E x i s t s candidate : vote ( voter , candidate ) ) 1 P r e d i c a t e vote concluded When ( E x i s t s candidate : winner ( candidate ) ) 2 P r e d i c a t e v o t e r s done When ( F o r a l l c i t i z e n : ! v o t e r ( ) | | has voted ( v o t e r ( ) ) ) Derivation expression computes the set of instances that hold true: 1 Fact number of v o t e s I d e n t i f i e d by I n t 2 Derived from Count ( Foreach vote : vote When Holds ( vote ) )

  32. Derived facts Derivation expression as a predicate (type-components are bound): 1 Fact has voted I d e n t i f i e d by v o t e r 2 Holds when ( E x i s t s candidate : vote ( voter , candidate ) ) 1 P r e d i c a t e vote concluded When ( E x i s t s candidate : winner ( candidate ) ) 2 P r e d i c a t e v o t e r s done When ( F o r a l l c i t i z e n : ! v o t e r ( ) | | has voted ( v o t e r ( ) ) ) Derivation expression computes the set of instances that hold true: 1 Fact number of v o t e s I d e n t i f i e d by I n t 2 Derived from Count ( Foreach vote : vote When Holds ( vote ) ) • Derived facts cannot be postulated

  33. Language design - overview 1 World: values, types, expressions 2 Norms: duties, acts, transitions 3 Pragmatics: refinement, scripts, testing

  34. Recall Hohfeld’s conceptions fundamental relation: power-liability fundamental relation: duty-claim between actor and recipient between duty holder and claimant How do we write down an interpretation formally?

  35. Duties A duty indicate that its holder ought to perform some action: 1 Duty c a s t vote duty Holder v o t e r Claimant a d m i n i s t r a t o r • A duty-type declaration is a fact-type declaration with a record-type

Recommend


More recommend